Pouvez-vous enregistrer / charger un fichier via Javascript?

Je veux créer un jeu Javascript très simple en utilisant HTML5 (Canvas). Mais est-il possible d'enregistrer un fichier .txt simple et de charger un fichier .txt simple. J'ai juste besoin de stocker comme des nombres entiers simples. Mais je veux simplement savoir si javascript est autorisé à enregistrer et à charger un fichier externe?

Toile

Sur Chrome, vous pouvez compter sur FileSystem API (pour une introduction, regardez ici ). Probablement, d'autres navigateurs vont bientôt ajouter un support.

Mais, si votre besoin est juste de «stocker comme des entiers simples», je considérerais le stockage local .

Depuis html5, vous pouvez utiliser l'API LocalStorage. De nos jours, presque tous les navigateurs l'appuient:

 // Check if it is supported in your browser function supports_html5_storage() { try { return 'localStorage' in window && window['localStorage'] !== null; } catch (e) { return false; } } //make use of it: if( supports_html5_storage() == true ) { localStorage.setItem("myItem", "myData"); var myDataString = localStorage.getItem("myItem"); alert(myDataString); } 

Vous ne pouvez accéder au système de fichiers local directement avec javascript, mais il est possible lorsque vous laissez l'utilisateur interagir (par exemple, en laissant l'utilisateur sélectionner un fichier à télécharger). Voir http://www.html5rocks.com/fr/tutorials/file/dndfiles/

Une autre possibilité est le stockage local. Voir http://davidwalsh.name/html5-storage , http://www.w3.org/TR/webstorage/

En bref, non. Selon David Flanagan "JavaScript: The Definitive Guide":

L'entrée et la sortie (ainsi que des fonctionnalités plus sophistiquées, telles que la mise en réseau, le stockage et les graphiques) relèvent de l'environnement hôte dans lequel JavaScript est intégré.

La plus grande question est pourquoi. Pensez à la façon dont il serait dangereux si JavaScript pourrait écrire des fichiers sur votre disque dur. Que faire si un site Web que vous avez visité pourrait accéder à votre système de fichiers local?