【问题标题】:JavaScript/Firefox write to text file on local drive exampleJavaScript/Firefox 写入本地驱动器上的文本文件示例
【发布时间】:2015-02-10 10:18:22
【问题描述】:

我了解出于安全考虑,javascript 不是为文件操作而设计的。但是,最近我想出了一种使用 firefox 读取文件的方法。有没有办法写入文件?

我发现了以下两种可能的解决方案:

  1. How to enable local javascript to read/write files on my PC?
  2. https://developer.mozilla.org/en/Code_snippets/File_I%2F%2FO

但是,由于我对这件事非常缺乏经验,所以我不知道如何使用它们中的任何一个。谁能提供一个非常基本的例子吗?

谢谢

编辑:我尝试使用 1. 写入文件,但它在这里工作是我写的:

  1. WritingJS.html:http://pastebin.com/ZSztcgNx
  2. selfcontainedmap2.js:http://pastie.org/3391242

我的 Firefox 是 Firefox 8 的全新安装,因此我想应该不会有任何插件冲突。

【问题讨论】:

  • 第一个链接中接受的答案不仅提供了所有代码,还提供了从文件读取的示例(就在第一个代码的下方)。写作是一样的,只是你传递了一个额外的参数,即你想要写的文本。
  • 您好,感谢您的回复。我尝试使用它,但无法让它工作。我已经编辑了原始问题以包括我写的内容。你能发现我犯的任何错误吗?谢谢。
  • 这里的解决方案向您展示了如何使用 HTML5 来保存文件,但是当想要保存到本地驱动器时,您需要用户输入:stackoverflow.com/a/13779352/1828637

标签: javascript firefox file-io firefox-addon


【解决方案1】:

您将无法从非特权代码访问 XPCOM 组件。

这在英语中的意思是,这些 API 仅适用于在浏览器上运行的插件之类的东西,而不适用于网站代码。

除了 cookie 之外,如果没有像 flash 这样的插件提供一种方法,网站就无法(并且出于安全原因永远不会成为一种方法)读取/写入本地文件。

【讨论】:

  • 问题被标记为 firefox-addon。
  • @MatthewFlaschen 我没有注意到这一点。恕我直言,问题应该更清楚,很容易错过。感谢您指出。
  • 感谢您的回复。我编辑了我的原始帖子以包含我尝试做的 SCCE。然而,它并没有奏效。你能发现任何错误吗?谢谢。
【解决方案2】:
function WriteToFile()
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var s = fso.CreateTextFile("C:\\NewFile.txt", true);
var text=document.getElementById("TextArea1").innerTex;
s.WriteLine(text);
s.Close();
}

您可以将文本写入文件并将其保存在本地驱动器中。一个非常基本的例子如下,

TextArea1 是包含目标文本的表单元素的 id。 该函数可以在按钮点击事件中调用。

希望有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-29
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多