extension Chrome: Télécharger le contenu / export créé « à la volée »
-
25-09-2019 - |
Question
Je dois permettre à l'utilisateur de télécharger un fichier créé à la volée à partir des données contenues dans l'extension, mais je ne veux pas faire côté serveur.
A titre d'exemple dans le monde réel: Il est une variable contenant le texte « Bonjour tout le monde ». Je veux que l'utilisateur pour pouvoir télécharger / créer un fichier contenant ce texte .TXT
.
Est-il possible?
-edited 30 octobre 2010 -
Solutions jusqu'à présent:
window.saveAs - ne fonctionne pas du tout
createObjectURL - travaux, mais le nom de fichier et d'autres options ne peuvent pas être encore personnalisées
données de copie dans le presse papier - travaux, mais trop d'étapes sont nécessaires à l'utilisateur
créer un document GoogleDocs - pourrait fonctionner, mais il a besoin de jouer avec l'API et OAuth
-edited 15 avril 2011
On dirait que les choses s'améliorent: https://github.com/eligrey/FileSaver.js
Mais Chrome 14+ est encore un peu bizarre les noms de fichiers.
La solution
Je pense que la seule façon est d'appeler dialogue de sauvegarde par flash, voir la bibliothèque Downloadify.
Autres conseils
Dans le chrome extensions groupe Google I ont trouvé cet exemple de travail: (je l'ai modifié pour travailler à partir de la fenêtre contextuelle)
BuiltBlob = new BlobBuilder("");
BuiltBlob.append("Hello, world");
BlobToSave = BuiltBlob.getBlob();
chrome.tabs.create({'url': createObjectURL(BlobToSave), 'selected': false});
Mais le nom de fichier n'est pas réglé, se terminant par quelque chose comme cf8a56bf-d724-4b97-b10f-e252961135bd
Sur les docs Les W3C ( http: // dev. w3.org/2009/dap/file-system/file-writer.html ) J'ai trouvé cette ne fonctionne pas exemple:
var bb = new BlobBuilder();
bb.append("Lorem ipsum");
var fileSaver = window.saveAs(bb.getBlob(), "test_file");
fileSaver.onwriteend = myOnWriteEnd;
mais window.saveAs
ne semble pas existe.
googleing autour J'ai trouvé pas à jour Google Gears références, mais rien d'autre, peut-être parce que je fais face à quelque chose de trop nouveau pour avoir la documentation appropriée?
Y at-il un moyen de définir le nom du fichier / type MIME au premier exemple?
Je ne pense pas que ce soit possible pour des raisons de sécurité