如何使用 Javascript 编写本地 .text

Posted

技术标签:

【中文标题】如何使用 Javascript 编写本地 .text【英文标题】:How to write a local .txt with Javascript 【发布时间】:2013-12-21 15:09:56 【问题描述】:

我想在 IE 中使用 javascript 控制台编写一个 .txt 文件。 我已经有了要写在文件上的字符串;所以,我想做的是:

var refTab=document.getElementById("historymatch_tb0");
var  ttl;
for ( var i = 0; row = refTab.rows[i]; i++) 

   row = refTab.rows[i];
   for ( var j = 0; col = row.cells[j]; j++ )
   
       WriteInFile (col.innerhtml);
   


我没有的是函数 WriteInFile 因为我试过这个:

 function WriteInFile (a)
 
  var fso = new ActiveXObject("Scripting.FileSystemObject");
  var filename = "c:\\Users\\Riccardo\\a.txt";
  var f = fso.OpenTextFile(filename, 2, true); 
  f.WriteLine(a);
  f.Close();
  

这不起作用, 脚本没有给我错误,但文件为空,控制台显示单词:未定义! 哪里有问题? 谢谢!

【问题讨论】:

你可以在 SO ***.com/questions/11101641/…查看这个 【参考方案1】:

从 HTML5 开始,这是可能的。见http://www.w3.org/TR/file-writer-api/#the-filesaver-interface和http://eligrey.com/blog/post/saving-generated-files-on-the-client-side

【讨论】:

不完全一样吧? HTML5 方法用于生成可下载文件。 OP 会尝试将文件直接保存到硬盘驱动器而无需用户交互。 没错,我只是想指出实际上有(跨浏览器)在 js 中编写文件的方法。 @MartinaF 这是一种更简洁的方法,可以让用户下载文件,而不是将其写入磁盘。否则,您必须确保目录存在...如果您只需要在页面加载之间保留一些数据,请查看 LocalStorage @agrafix 我不想下载文件...我想在我现有的文件中写字。 (这是文件的个人用途) 如何将您需要的所有内容收集到 LocalStorage 中,然后下载/保存到您想要的位置?【参考方案2】:

如果我对您的理解正确,那么您真正要求的是一种在会话之间将信息持久保存在 js 中的方法。我了解文件看起来非常适合该任务。但由于浏览器对文件系统的访问权限非常有限,这并不理想。

您可以将所需的信息保存在浏览器的 Web 存储中,而不是使用本地文件。您可以稍后来取回它。详情见http://www.html5rocks.com/en/features/storage

【讨论】:

您好,感谢您的回答!有什么方法可以将这个 Web Storage 保存在我的文件系统中? 您的网络存储是浏览器中的内部数据库。您无法将其保存到常规文件系统,但您仍然可以阅读、在网站上显示和使用它,即使您关闭窗口并打开一个新窗口也是如此。【参考方案3】:

也许是浏览器的问题? 我在 IE9 中尝试过 - 它工作正常(参见 jsfiddle - 这是你的代码)

 var a = "Hello";
 WriteInFile(a);

http://jsfiddle.net/nb5N7/1/

但是,我还必须启用不安全的 activeX 执行

http://social.msdn.microsoft.com/Forums/vstudio/en-US/41b3a68b-dd16-48a8-b86c-02a1e543081c/activexobjectscriptingfilesystemobject-automation-server-cant-create-object (见答案)

UPD:为什么你被我删减了? UPD2:

for ( var i = 0; row = refTab.rows[i]; i++) 

这里可能有问题? 你应该写

 var i = 0; i < refTab.rows.lenght; i++

而不是

 for ( var i = 0; row = refTab.rows[i]; i++) 

另外,尝试添加 alert(1); to for 循环(检查它是否正常工作)

【讨论】:

我的意思不完全是你

以上是关于如何使用 Javascript 编写本地 .text的主要内容,如果未能解决你的问题,请参考以下文章

编写第一个JavaScript程序

如何使用本地存储使用javascript登录

Latex文件如何拆分进行独立编译?

Solana - 如何从 JavaScript / Node.js 中的本地密钥对获取帐户?

使用 JavaScript 访问 WKWebView 中的本地文件

如何在 Javascript 中加载本地 JSON 文件