如何使用javascript中的component.class访问本地文件?

如何使用javascript中的component.class访问本地文件?,javascript,firefox-addon,Javascript,Firefox Addon,我尝试了一个通过这个函数在firefox中读写本地文件的解决方案 function Read(file) { var ioService = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService); var scriptableStream = Components.classes["@mozilla.org/scriptablei

我尝试了一个通过这个函数在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。我是新来的。任何帮助都将不胜感激。

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

如果出于正当理由需要读取用户计算机上的文件,可以使用HTML5。但是,这会有一点不同,因为它需要用户先选择XML文件,然后才能读取它。也许你的页面可以给他们一些指示,让他们知道如何找到合适的文件

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

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


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

这是浏览器扩展吗?如果您试图在常规网页中执行此操作,我认为这是不允许的。如果我们不能在网页中使用此代码,是否有其他方法可以使用Firefox 23.0.1中的javascript读取xml文件。谢谢,我有一个不会在服务器上运行的html页面应用程序。因此,驻留在同一台机器上的页面将访问驻留在同一台机器上的本地文件。我的要求是在firefox中运行这个场景。我怎样才能达到要求。