javascript - 如何从 Firefox 插件中加载文件

标签 javascript firefox firefox-addon

我正在开发一个 Firefox 插件,其中包含一个包含一些 HTML 数据的文件。如何将此文件作为字符串加载?

我可以

var contents = Components.utils.import("resource://stuff.html");

但是它随后会尝试将 XML 文件作为 Javascript 执行。我只想要它的内容!

最佳答案

使用此功能,您可以使用 chrome 范围读取文件。

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;
}

var contents = Read("chrome://yourplugin/stuff.html");

Example loading CSS content and injecting on a page .

编辑:

只是为了更新这个,因为它有点方便!

let { Cc, Ci } = require('chrome');
function read(file){
    var ioService = Cc["@mozilla.org/network/io-service;1"]
        .getService(Ci.nsIIOService);
    var scriptableStream = Cc["@mozilla.org/scriptableinputstream;1"]
        .getService(Ci.nsIScriptableInputStream);

    var channel = ioService.newChannel2(file, null, null, null, null, null, null, null);
    var input = channel.open();
    scriptableStream.init(input);
    var str = scriptableStream.read(input.available());

    scriptableStream.close();
    input.close();
    return str;
}

关于javascript - 如何从 Firefox 插件中加载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3772788/

相关文章:

angularjs - Protractor 中的多个 Firefox 配置文件

javascript - 使用 Firefox 附加组件进行 URL 过滤

android - Firefox Mobile Addon SDK 通过 Android usb 连接错误 - package.json 没有 'main' 条目

css - 如何从 Linux 上的 Firefox 中的聚焦 radio 输入中删除边框/轮廓

javascript - 如何附加json字段的nodejs Sequelize 模型列表

javascript - 火狐浏览器日期格式

javascript - 在本地主机上的 .php 文件中测试 jQuery 但无法正常工作

css - Mozilla 系统默认样式 - *|* :-moz-any-link

javascript - Firefox 中的 gContextMenu.saveLink() 函数

javascript - 将 props 数组传递给子组件