2013-07-30 29 views
3

我想用HTML5(Canvas)創建一個非常簡單的Javascript遊戲。但是可以保存一個簡單的.txt文件並加載一個簡單的.txt文件。我只需要存儲一些簡單的整數。但我只想知道是否允許JavaScript保存並加載外部文件?你可以通過Javascript保存/加載文件嗎?

帆布

+1

你絕對不能寫入到本地磁盤,但大多數瀏覽器都具有某種[本地存儲]的(http://dev.w3.org/html5/webstorage /)。 –

+0

如果安全無關緊要,您可以嘗試'document.cookie',這非常容易使用 – sgroves

+0

查看此鏈接; http://stackoverflow.com/questions/2897619/using-html5-javascript-to-generate-and-save-a-file – JNL

回答

3

在Chrome上,您可以依賴FileSystem API(對於介紹take a look here)。其他瀏覽器可能很快會添加對它的支持。

但是,如果您的需要只是「存儲像一些簡單的整數」,我會考慮local storage

+0

我將使用FileSystem API我認爲 – Canvas

0

總之,沒有。據大衛·弗拉納根的「JavaScript權威指南」:

輸入和輸出(以及更先進的功能,如 網絡,存儲和圖形)是「主機 環境」的責任在其中嵌入JavaScript。

更大的問題是爲什麼。想一想,如果JavaScript可以將文件寫入硬盤,會有多危險。如果您訪問過的任何網站可以訪問您的本地文件系統?

+0

網站已寫入你的文件系統(cookies等)。那麼爲什麼JavaScript不應該這樣做呢?如果訪問受到限制,我沒有看到安全問題。而且,這個API已經有了。它的名爲「本地存儲」 – Alex

+1

@Alex,本地存儲是一個選項,自從第一條評論以來,每個人都提到了它。但我想解釋爲什麼JavaScript不能寫入本地磁盤,我引用了一個非常受尊敬的消息來源。我知道這不會成爲公認的答案,但我認爲這可以解釋這個問題。 – gwg

2

由於html5,您可以使用LocalStorage API。幾乎所有目前的瀏覽器支持:

// 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); 
} 
+0

本地存儲API仍然存在?這是另一個更新的化身嗎? – 2016-11-16 10:22:18

相關問題