Pergunta

Preciso permitir que o usuário faça o download de um arquivo criado rapidamente a partir de alguns dados contidos na extensão, mas não quero fazer esse servidor.

Como exemplo do mundo real: há uma variável contendo o texto "Hello World". Eu quero que o usuário possa baixar/criar um .TXT arquivo contendo esse texto.

É possível ?

-Edited 30 de outubro de 2010-

Soluções até agora:

window.saveas - não está funcionando

CreateObjecturl - funciona, mas o nome do arquivo e outras opções ainda não podem ser personalizados

Copie dados para a área de transferência - funciona, mas são necessárias muitas etapas para o usuário

Crie um documento GoogleDocs - poderia funcionar, mas precisa mexer com a API e OAuth

-Edited 15 de abril de 2011

Parece que as coisas estão melhorando: https://github.com/eligrey/fileSaver.js

Mas o Chrome 14+ ainda é um pouco estranho em nomes de arquivos.

Foi útil?

Solução

Eu acho que a única maneira é ligar para salvar diálogo através do flash, veja Downloadify biblioteca.

Outras dicas

No Grupo do Google de Extensões de Cromo-Extensões, encontrei este exemplo de funcionamento: (eu o modifiquei para funcionar do pop-up)

BuiltBlob = new BlobBuilder(""); 
BuiltBlob.append("Hello, world"); 
BlobToSave = BuiltBlob.getBlob(); 
chrome.tabs.create({'url': createObjectURL(BlobToSave), 'selected': false});

Mas o nome do arquivo não está definido, terminando com algo como cf8a56bf-d724-4b97-b10f-e252961135bd

Nos documentos do W3C ( http://dev.w3.org/2009/dap/file-system/file-writer.html ) Eu encontrei isso não está funcionando exemplo:

var bb = new BlobBuilder(); 
bb.append("Lorem ipsum"); 
var fileSaver = window.saveAs(bb.getBlob(), "test_file"); 
fileSaver.onwriteend = myOnWriteEnd; 

mas window.saveAs não parece existir.

No Google, encontrei referências desatualizadas do Google Gears, mas nada mais, talvez porque estou lidando com algo novo demais para ter documentação adequada?

Existe uma maneira de definir o nome do arquivo/tipo MIME para o primeiro exemplo?

Eu não acho que isso seja possível por motivos de segurança

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top