2014-04-08 43 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工作,你应该而不是试图做到这一点。对于此功能,跨浏览器支持将非常狭窄。

如果您想写出文件,只需向用户提供下载。

如果这只是读取/写入某种数据的方式,请查看​​。

相关问题