![](/img/trans.png)
[英]How can I display date in a wbpage using javascript in mozilla firefox?
[英]How to create a file using javascript in Mozilla Firefox
我想在javascript中編寫一個函數,它創建一個文件並寫一些內容給它,我在使用firefox,在這種情況下,任何人都可以幫助我。
謝謝...
您可以在Firefox中使用JavaScript編寫文件,但必須使用XPCOM對象(內部瀏覽器API)。 對於從網頁加載的JavaScript,不允許這樣做,並且它旨在由在Firefox附加組件中運行的JavaScript(具有高級別權限)使用。
有一種方法可以讓非特權(網頁)JavaScript請求更多權限,如果用戶授予它(會有一個彈出對話框要求權限),網頁代碼就能寫入文件。
但在你進一步閱讀之前,警告:
這不是標准的JavaScript,我不推薦這種方法,除非你正在開發一個非常特定的應用程序,它將以一種非常具體的方式使用(例如, http ://www.tiddlywiki.com/客戶端JavaScript -HTML only wiki)。
在網站上請求XPCOM權限是一種不好的做法! 它基本上等同於運行您剛從站點下載的.exe。 您要求用戶使用運行Firefox的用戶的身份授予對其計算機的完全訪問權限(讀取,寫入,執行)。
請求使用XPCOM的權限(這將提示用戶進行確認,無法避免):
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
然后,使用XPCOM對象(Mozilla Developer Network的示例代碼)寫入文件:
1. // file is nsIFile, data is a string
2. var foStream = Components.classes["@mozilla.org/network/file-output-stream;1"].
3. createInstance(Components.interfaces.nsIFileOutputStream);
4.
5. // use 0x02 | 0x10 to open file for appending.
6. foStream.init(file, 0x02 | 0x08 | 0x20, 0666, 0);
7. // write, create, truncate
8. // In a c file operation, we have no need to set file mode with or operation,
9. // directly using "r" or "w" usually.
10.
11. // if you are sure there will never ever be any non-ascii text in data you can
12. // also call foStream.writeData directly
13. var converter = Components.classes["@mozilla.org/intl/converter-output-stream;1"].
14. createInstance(Components.interfaces.nsIConverterOutputStream);
15. converter.init(foStream, "UTF-8", 0, 0);
16. converter.writeString(data);
17. converter.close(); // this closes foStream
您可以在此處使用XPCOM在Firefox中找到有關I / O的更多信息: https : //developer.mozilla.org/en-US/docs/Code_snippets/File_I_O
來自網站的Javascript無法訪問本地文件系統。
如果您想存儲數據,請將其存儲在服務器或cookie中。
出於安全原因,禁止直接從瀏覽器寫入文件系統。 但是使用html5,可以獲得離線存儲支持。 看看這里 。
格茲,克里斯。
Javascript在客戶端上下文中執行。
這個..文件編寫器API將有一個API。 早期規范如下: http : //www.w3.org/TR/file-writer-api/它尚未在任何瀏覽器中實現。
更新:似乎已經存在一個實現。 查看http://caniuse.com/filesystem和http://www.html5rocks.com/en/tutorials/file/filesystem/
雖然每個回復javascript都沒有能力在遠程服務器上寫文件的人都是正確的,但出於安全原因這是正確的,你想要完成的事情仍然是可能的。
例如,如果您希望使用javascript在網站上創建文件,則可以使用某些服務器端腳本語言和AJAX調用來實現。
例:
您的服務器上有一個名為update_last_access.php
的文件,它將創建一個文件,用於存儲上次在某個任意文件中訪問文件的時間。
如果你有你的javascript函數對該腳本進行AJAX調用,例如,在jquery中
$.get("update_last_access.php")
然后,這將執行服務器端腳本並寫入該文件。
在為您提供更多幫助之前,您必須澄清您要做的事情。
您可以使用Firefox 3.6從JavaScript文件系統中讀取文件 - 例如,請參閱我的EPUB讀者概念驗證 。
但是,您無法直接從JavaScript編寫文件。 你必須通過服務器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.