2014-04-08 82 views
0

我想製作一個JQuery例程,它可以將信息(追加)寫入存在或不存在的文本文件。如果文件不存在,則應創建文件,如果文件存在,則應追加或開始向文件寫入新數據。我認爲追加將是文件記錄器的最佳選擇。所以它必須將數據附加到文件中。如何使JQuery例程寫入計算機桌面上的文本文件?

我在互聯網上發現了這段代碼,並試圖解決它,以便我可以在我的頁面上使用它來將信息寫入一個簡單的文本文件。

問題:如何將以下代碼記錄到文件中進行下載?

以下是新代碼以及我如何閱讀評論中列出的關於Java腳本中的記錄器應如何工作的頁面。代碼不起作用,我不確定爲什麼。

我並不十分確定下載是如何工作的,但如果我可以讓記錄器工作,我將很樂意暫時。

代碼:

<!DOCTYPE html> 
<html> 
<head> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"> 
    <script src="log4moz.js"> 
</head> 

<script> 
getLocalDirectory : function() { 
    let directoryService = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties); 
    // this is a reference to the profile dir (ProfD) now. 
    let localDir = directoryService.get("ProfD", Ci.nsIFile); 
    localDir.append("XULSchool"); 

    if (!localDir.exists() || !localDir.isDirectory()) { 
    // read and write permissions to owner and group, read-only for others. 
    localDir.create(Ci.nsIFile.DIRECTORY_TYPE, 0774); 
    } 

    return localDir; 
} 

let myFile = XULSchool.getLocalDirectory(); 
myFile.append("someFile.txt"); 

let formatter = new Log4Moz.BasicFormatter(); 
let root  = Log4Moz.repository.rootLogger; 
let logFile = this.getLocalDirectory(); // remember this? 
let appender; 

logFile.append("log.txt"); 
root.level = Log4Moz.Level["All"]; 

appender  = new Log4Moz.RotatingFileAppender(logFile, formatter); 
appender.level = Log4Moz.Level["All"]; 
root.addAppender(appender); 

this._logger  = Log4Moz.repository.getLogger("XULSchool.SomeObject"); 
this._logger.level = Log4Moz.Level["All"]; 
this._logger.fatal("This is a fatal message."); 
this._logger.error("This is an error message."); 
this._logger.warn("This is a warning message."); 
this._logger.info("This is an info message."); 
this._logger.config("This is a config message."); 
this._logger.debug("This is a debug message."); 
this._logger.trace("This is a trace message."); 

</script> 

<body> 

<form id="addnew"> 
    <input type="text" class="A"> 
    <input type="text" class="B"> 
    <input type="submit" value="Add"> 
</form> 

</body> 
</html> 
+1

想象一下,任何網站都可以編輯計算機上的文件的世界。 – Smeegs

+0

網站可以進入用戶文件系統的安全漏洞,針對他們發明'localStorage'和'indexedDb'的這個問題, – stackunderflow

+1

您可以寫入服務器上的txt文件,然後讓用戶選擇下載它 – Vector

回答

5

@Smeegs說,這很好

想象的世界裏,任何網站可以在您的計算機

的JavaScript(或jQuery的)不能觸摸上編輯文件用戶的文件系統。

即使你發現有些被黑客入侵的東西通過ActiveXObject工作,你應該而不是試圖做到這一點。對於此功能,跨瀏覽器支持將非常狹窄。

如果您想寫出文件,只需向用戶提供下載。

如果這只是讀取/寫入某種數據的方式,請查看​​。

相關問題