Utilisez la fonction javascript execCommand('SaveAs', false, filename);
fonctionnalité
Edit : Ne fonctionne plus. Cette fonction Javascript fonctionnait sur tous les navigateurs, mais maintenant seulement sur IE, en raison de considérations de sécurité du navigateur. Elle présentait une boîte de dialogue "Enregistrer sous" à l'utilisateur qui exécutait cette fonction via son navigateur, l'utilisateur appuyait sur OK et le fichier était enregistré par javascript du côté du serveur.
Maintenant, ce code est une rare antiquité zéro jour de collection.
// content is the data (a string) you'll write to file.
// filename is a string filename to write to on server side.
// This function uses iFrame as a buffer, it fills it up with your content
// and prompts the user to save it out.
function save_content_to_file(content, filename){
var dlg = false;
with(document){
ir=createElement('iframe');
ir.id='ifr';
ir.location='about.blank';
ir.style.display='none';
body.appendChild(ir);
with(getElementById('ifr').contentWindow.document){
open("text/plain", "replace");
charset = "utf-8";
write(content);
close();
document.charset = "utf-8";
dlg = execCommand('SaveAs', false, filename);
}
body.removeChild(ir);
}
return dlg;
}
Appelez la fonction comme ceci :
msg = "I am the president of tautology club.";
save_content_to_file(msg, "C:\\test");
2 votes
Ne pouvez-vous pas écrire la réponse à un champ dans le HTML ?
0 votes
Ce n'est plus vrai. Mais l'accès que vous pouvez obtenir par le biais de javascript est limité à ce que l'utilisateur vous autorise.
1 votes
Le bac à sable empêche l'accès direct aux fichiers pour des raisons de sécurité. Vous pouvez utiliser l'API de fichier HTML5 pour permettre à l'utilisateur de sélectionner des fichiers dans une boîte de dialogue de fichier.