javascript - 如何启用本地 JavaScript 来读取/写入我的 PC 上的文件?

标签 javascript firefox greasemonkey

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

所以,我决定添加一个

<script type="text/javascript" src="file:///c:/test.js">/script>

现在,此测试将使用 FileSystemObject 来读取/写入文件。由于 file:///c:/test.js 是本地硬盘上的 JavaScript 文件,因此它应该能够读取/写入本地硬盘上的文件。

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

Firefox 的 about: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");

另请参阅

关于javascript - 如何启用本地 JavaScript 来读取/写入我的 PC 上的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2846045/

相关文章:

javascript - Google Chrome 中将 Javascript 插入网站的简单方法是什么?

javascript - 如何在 Greasemonkey 或 Tampermonkey 中排除 iframe?

javascript - 日期-fns |如何格式化为 UTC

javascript - 如何知道实时更新何时结束 - Cloud Firestore ionic 4 with angular

html - Firefox 中表格单元格显示对象内的 CSS 绝对定位对象

javascript - 调整 iframe 大小时如何防止 swf 刷新?

html - 在 Firefox 中,控制台 "XML Parsing Error: mismatched tag"输入错误

javascript - GreaseMonkey 仅向第一个元素添加自定义点击功能

javascript - json 返回对象数组,如何为 Angular $scope 变量赋值?

javascript - 如何在angularjs中使用通配符搜索?