我想创建一个JQuery例程,可以将信息(追加)写入存在或不存在的文本文件中.如果文件不存在而不是它应该创建文件,如果它存在,它应该追加或开始将新数据写入文件.我认为append将是文件记录器的最佳选择.所以它必须将数据附加到文件中.
我在互联网上找到了这个代码,我正在努力解决它,以便我可以在我的页面上使用它来将信息写入一个简单的文本文件.
问题:如何将以下代码记录到文件中以供下载?
下面是新代码以及我如何阅读有关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>
Run Code Online (Sandbox Code Playgroud)
@Smeegs很好地说
想象一下,任何网站都可以在您的计算机上编辑文件
JavaScript(或jQuery)无法触及用户的文件系统.
即使你发现通过一些工作砍死了的事情ActiveXObject,你应该不会尝试这样做.对于此功能,跨浏览器支持将非常狭窄.
如果要写出文件,只需向用户提供下载.
如果这只是读取/写入某种数据的一种方法,请查看localstorage.