gpt4 book ai didi

firefox-addon - 如何在 Firefox Jetpack 附加组件中的背景脚本和内容脚本之间共享 javascript 代码?

转载 作者:行者123 更新时间:2023-12-02 02:14:08 24 4
gpt4 key购买 nike

我已经为我的 Firefox 附加组件编写了一个库来模仿 Chrome 的请求/响应 API。显然,我需要在后台进程 (main.js) 和内容脚本中使用此代码。肯定有比 stringifying the imported module 更好的方法.

最佳答案

有一种获取 SDK 代码模块 URL 的半文档化方法。这涉及不能保证保持稳定的低级模块。事实上,这部分 SDK 很可能会发生变化,并且此解决方案将不再有效(就像此处最初提供的解决方案一样)。

也就是说,SDK 允许您访问 loader module .所以首先你需要construct a loader with the same options as the one used by the SDK .然后你需要使用 resolveURI utility function使用此加载器的映射解析模块名称:

var {Loader, resolveURI} = require('toolkit/loader');
var options = require('@loader/options');
var loader = Loader(options);
var fooURI = resolveURI("./foo", loader.mapping);

上面的代码为模块 foo 生成了 URL。请注意,您需要在某处使用模块 foo ,否则它不会包含在您的扩展中。如果您还没有使用它,那么一个虚拟函数就足够了:

function dummy()
{
require("foo");
}

使用生成的 URL 作为内容脚本工作得很好:

var pageMod = require("page-mod");
pageMod.PageMod({
include: "*.google.com",
contentScriptWhen: 'end',
contentScriptFile: [fooURI, ...]
});

关于firefox-addon - 如何在 Firefox Jetpack 附加组件中的背景脚本和内容脚本之间共享 javascript 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11402223/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com