J'avais une situation similaire (mais je n'étais pas prêt à abandonner complètement). Je suis en train de construire une version d'une page Web qui soit facile à sauvegarder en utilisant Javascript que je veux que l'utilisateur télécharge en tant que fichier texte (valeurs séparées par des virgules, dans mon cas). Je pense que data:
URIs peuvent aider ici.
//construct the csvOutput in Javascript first
var popup = window.open("data:application/octet-stream," + encodeURIComponent(csvOutput), "child");
//no need to document.write() anything in the child window
Dans Firefox, cela ne se déclenche pas une fenêtre même, juste demande à l'utilisateur si elles veulent enregistrer le fichier, et il enregistre dans un fichier .part. Pas exactement idéal, mais au moins, il enregistre le fichier sans faire apparaître une fenêtre inutile.
Sinon, nous pouvons utiliser le text/plain type MIME:
//construct the csvOutput in Javascript first
var popup = window.open("data:text/plain;charset=utf-8," + encodeURIComponent(csvOutput), "child");
Dans Firefox, cela ne pop ouvrir une nouvelle fenêtre, mais il est enregistré par défaut sous forme de texte ASCII, sans aucun des cochonneries de la fenêtre parent ou tout retour à la ligne. C'est probablement ce que je vais utiliser.
Il semblerait que cela ne fonctionne pas dans IE.IE 8 est la seule version qui prend en charge data:
URI, et il a un series of restrictions sur où il peut être utilisé. Pour IE, vous pouvez regarder execCommand. Grâce à ce tek-tip thread et Wikipedia article on the data URI scheme.
fyi - vous devriez pouvoir éditer votre propre question ... – garrow
Thanks garrow. Mon navigateur était juste stupide ce jour-là. – kraryal