Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何启用本地javascript在我的电脑上读/写文件?_Javascript_Firefox_Greasemonkey - Fatal编程技术网

如何启用本地javascript在我的电脑上读/写文件?

如何启用本地javascript在我的电脑上读/写文件?,javascript,firefox,greasemonkey,Javascript,Firefox,Greasemonkey,由于Greasemonkey无法读取/写入本地硬盘上的文件,我听到有人建议使用GoogleGears,但我对gears一无所知 因此,我决定添加一个 <script type="text/javascript" src="file:///c:/test.js">/script> /script> 现在,这个测试将使用FileSystemObject来读/写文件。因为,file:///c:/test.js是本地硬盘上的一个javascript文件,它可能能够读取/写入本地硬盘

由于Greasemonkey无法读取/写入本地硬盘上的文件,我听到有人建议使用GoogleGears,但我对gears一无所知

因此,我决定添加一个

<script type="text/javascript" src="file:///c:/test.js">/script>
/script>
现在,这个测试将使用FileSystemObject来读/写文件。因为,
file:///c:/test.js
是本地硬盘上的一个javascript文件,它可能能够读取/写入本地硬盘上的文件

我试过了,但是Firefox阻止了
file:///c:/test.js
从本地磁盘读取/写入文件的脚本:(


Firefox的
中是否有关于:config
的任何设置,我们可以在其中指定让特定脚本(例如来自localfile或xyz.com的脚本)对我的本地磁盘文件具有读/写权限?

您可以在chrome范围内使用这些设置

var FileManager =
{
Write:
    function (File, Text)
    {
        if (!File) return;
        const unicodeConverter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]
            .createInstance(Components.interfaces.nsIScriptableUnicodeConverter);

        unicodeConverter.charset = "UTF-8";

        Text = unicodeConverter.ConvertFromUnicode(Text);
        const os = Components.classes["@mozilla.org/network/file-output-stream;1"]
          .createInstance(Components.interfaces.nsIFileOutputStream);
        os.init(File, 0x02 | 0x08 | 0x20, 0700, 0);
        os.write(Text, Text.length);
        os.close();
    },

Read:
    function (File)
    {
        if (!File) return;
        var res;

        const is = Components.classes["@mozilla.org/network/file-input-stream;1"]
            .createInstance(Components.interfaces.nsIFileInputStream);
        const sis = Components.classes["@mozilla.org/scriptableinputstream;1"]
            .createInstance(Components.interfaces.nsIScriptableInputStream);
        is.init(File, 0x01, 0400, null);
        sis.init(is);

        res = sis.read(sis.available());

        is.close();

        return res;
    },
}
例如:

var x = FileManager.Read("C:\\test.js");
另请参见


不是脚本的位置决定了它在同一源代码策略下运行的源代码,而是包括脚本在内的页面的位置。在任何情况下,“FileSystemObject”都是ActiveX控件,因此Firefox中不存在这样的控件。很清楚,这在Greasemonkey脚本中不起作用。
组件.类
wi我将抛出一个安全错误。