2013-05-05 44 views
0

你好,我有問題,我的HTML/JavaScript代碼: 在javascript中寫入文件。不工作

function rf() 
{ 

    var fs,file; 

    fs = new ActiveXObject('Scripting.FileSystemObject'); 

    file = fs.OpenTextFile('/test123.txt',2); 

    file.Write('The text to write to file'); 

    file.Close(); 

} 

</script> 
<button onclick="rf()">Try it</button> 
</html> 

我去的頁面上,按一下按鈕,沒有成功。有人能爲我糾正這個問題嗎?

+2

這隻適用於Internet Explorer,不適用於其他瀏覽器。 – DOK 2013-05-05 19:58:06

+0

您應該爲此使用AJAX,並讓您的服務器端代碼處理文件處理。 – 2013-05-05 20:00:09

+0

只有在安全設置足夠低的情況下才能在IE中使用。 – JJJ 2013-05-05 20:00:49

回答

1

即使Internet Explorer在默認情況下也不允許使用此構造 - 在任何版本中 - 您都需要手動切換一些非常危險的設置以允許此設置。 Javascript在瀏覽器中的全部用途是在瀏覽器進程內部使用沙箱,並且完全無法訪問甚至寫入周圍的計算機及其文件系統。如果此代碼可以工作,那麼會阻止某人對您的System32文件夾中的文件執行相同操作?或者hiberfil.sys?或autoexec.bat?不用說,你試圖達到的目標不能也不應該在任何計算機上,任何瀏覽器上工作。

Microsoft documentation on the subject

由於使用FSO在客戶端可以提供潛在 到客戶端的本地文件系統的訪問不受歡迎,你應該使用它 只在服務器端執行的腳本。 Internet Explorer默認的 安全設置不允許客戶端使用FileSystemObject 對象。覆蓋這些默認設置可能會使本地計算機對文件系統造成不受歡迎的訪問,這可能會導致文件系統完整性受損,從而導致數據丟失或者更糟糕。