Je souhaite écrire un article localStorage dans un fichier texte et souhaitez appeler l'utilisateur à stocker le fichier dans un emplacement spécifié. Aidez-moi s'il vous plaît avec l'extension du code
var data = JSON.parse(localStorage.getItem(pid)); var Text2Write = ""; for(var pr in ele) { var dat = pr + ":" + ele[pr] + "\n"; Text2Write += dat; } // Here I want to store this Text2Write to text file and ask user to save where he wants.
5 Réponses :
Vous devez écrire ce contenu dans un fichier texte pouvant être téléchargé avec PHP. Avec JavaScript, ce n'est pas possible, je pense. Vous pouvez envoyer une post-demande à un fichier PHP pouvant être téléchargé sous forme de fichier texte. P>
Si vous ne voulez pas utiliser une solution côté serveur (ne doit pas nécessairement être PHP bien sûr), le moyen le plus simple est d'utiliser une URI de données:
data:text/plain,Your text here
window.location = "Données: texte / plaine, votre texte ici";
@Emilstenstorm comme ça? $ ('# mais'). Cliquez sur (fonction () {window.location = "Données: texte / plaine, mes données"});
J'ai trouvé cette console.Save (Data, [Nom de fichier]) Méthode que vous pouvez ajouter à la console qui fait assez facilement le truc. Notez que lorsque le fichier est téléchargé, il se passe directement dans le dossier Téléchargements par défaut. Pour l'ajouter, il est simplement exécuté: puis transmettez-le dans les données et le nom de fichier comme, Console.save (Data, [Nom de fichier]) et le fichier sera créé et téléchargé. P> Source: P> https://plus.google.com/+addyosmani/posts/ jbs8cintesm p> http://bgrins.github.io/devtools-snippets / # console-Save p> p>
Étant donné que la question est étiquetée avec Google-Chrome-Extension, je souhaite fournir une solution plus simple pour les développeurs de vulgarisation.
Premier, ajoutez "Téléchargements" aux autorisations dans puis utilisez les téléchargements-API avec les données Manifest.json Code> P >
: Texte / Code Code> Trick tel que fourni par @ emil-stenström. P>
var myString = localStorage.YOUR_VALUE;
chrome.downloads.download({
url: "data:text/plain," + myString,
filename: "data.txt",
conflictAction: "uniquify", // or "overwrite" / "prompt"
saveAs: false, // true gives save-as dialogue
}, function(downloadId) {
console.log("Downloaded item with ID", downloadId);
});
J'ai également voulu enregistrer mon texte de stockage local dans un fichier de téléchargement et le code fonctionne sur le bureau pour Safari, Chrome et Firefox sur Mac. Cependant, je pense qu'il est impossible dans IOS d'enregistrer le blob () n'importe où avec chrome ou Firefox. Cela fonctionne, assez intéressant de Safari. Par exemple, je peux enregistrer le fichier texte à mon application Wunderlist. Voici le lien mon repo sur github: The Cat Whisperer sur github gh-pages
Voici le code JavaScript: P>
const fileDownloadButton = document.getElementById('save'); function localStorageToFile() { const csv = JSON.stringify(localStorage['autosave']); const csvAsBlob = new Blob([csv], {type: 'text/plain'}); const fileNameToSaveAs = 'local-storage.txt'; const downloadLink = document.getElementById('save'); downloadLink.download = fileNameToSaveAs; if (window.URL !== null) { // Chrome allows the link to be clicked without actually adding it to the DOM downloadLink.href = window.URL.createObjectURL(csvAsBlob); downloadLink.target = `_blank`; } else { downloadLink.href = window.URL.createObjectURL(csvAsBlob); downloadLink.target = `_blank`; downloadLink.style.display = 'none'; // add .download so works in Firefox desktop. document.body.appendChild(downloadLink.download); } downloadLink.click(); } // file download button event listener fileDownloadButton.addEventListener('click', localStorageToFile);
Peut-être que cela vous aide? Tutoriallzine.com/2011/05/Generating-Files-javascript-php A> Il utilise une page d'aide PHP, pas l'API FileWriter HTML5.