0

我尝试了一个解决方案,通过这个函数在 Firefox 中读写本地文件

function Read(file) {
    var ioService = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
    var scriptableStream = Components.classes["@mozilla.org/scriptableinputstream;1"].getService(Components.interfaces.nsIScriptableInputStream);
    var channel = ioService.newChannel(file, null, null);
    var input = channel.open();
    scriptableStream.init(input);
    var str = scriptableStream.read(input.available());
    scriptableStream.close();
    input.close();
    return str;
}

但在 Firefox 中,执行在var ioService=Components.classes["@mozilla.org/network/io-service;1"]. 请告诉如何使用此代码。我需要安装任何插件吗?我使用的是 FF 版本 23.0.1。我是新来的。任何帮助将不胜感激。

4

1 回答 1

1

想象一下,如果 Internet 上的任何网页都可以读取本地文件系统上的任何文件。如果这是可能的,那么恶意程序员很容易窃取我们的私人信息。幸运的是,运行 HTML 页面的 Web 浏览器无法直接执行此操作。

如果您出于正当原因需要读取用户计算机上的文件,您可以使用 HTML5 File API。然而,这会有点不同,因为它需要用户首先选择XML 文件,然后才能阅读它。也许您的页面可以为他们提供说明,以便他们知道如何找到正确的文件。

如果您必须同时读取和写入文件,那么您将不得不使用与 HTML+JS 不同的技术。一个特定于 Mozilla 的选项是让您编写XUL 应用程序。上面的 JavaScript 代码使用了他们专有的 XPCOM 系统,如果它具有正确的权限,它将在 XUL 应用程序中执行。如果这是你想走的路线,MDN 有一些很好的资源。

如果您不想深入研究 XUL,那么您可以使用任意数量的脚本语言或桌面应用程序开发工具,并让用户在他们的桌面上运行。在不知道你需要做什么的细节的情况下,我只能给你这个通用的答案。

我希望这有帮助。抱歉,您将不得不放弃当前的方法。

于 2013-09-03T15:51:08.717 回答