Mozilla FireFox 插件 -> 在 main.js 中包含外部库

问题描述 投票:0回答:3

我需要在 FireFox 插件的 main.js 中导入/包含一个 javascript 文件,但由于 main.js 不包含“文档”,我无法以正常/简单的方式插入它。

我尝试过一些东西,但从未成功。

这就是我真正想要实现的目标: 我使用外部时区检测脚本(https://bitbucket.org/pellepim/jstimezonedetect/overview)。我需要确定 main.js 中的时区来下载 Google 日历文件 + 将时间转换为用户时区。这是以后不能做的!到目前为止,我只是手动将代码插入到文件中(复制+粘贴),但这不是一个非常好的和清晰的方法。

javascript firefox import firefox-addon add-on
3个回答
3
投票

您需要创建一个 CommonJS 模块。将 .js 文件添加到插件的 lib 文件夹中,并通过“exports”指令导出您需要的所有函数。完成此操作后,您可以通过“require”指令使用导出的函数。

例如,在您将重用的模块中,您可以输入:

// REUSABLE MODULE
exports.somefunction = somefunction;

function somefunction() {
    doSomething();
 }

然后在将使用这个的模块中:

var othermodule = require("reusable_module");
othermodule.somefunction();

以下是相关文档:https://addons.mozilla.org/en-US/developers/docs/sdk/latest/dev-guide/guides/modules.html


0
投票

2020年更新:

我自己也遇到过,并且要求似乎不起作用 这似乎确实有效:(ES6 风格导入)

在清单内将“脚本”替换为“页面”,如下所示 -

"background": {
    "page": "background.html"
  }

创建background.html文件并添加

<script type="module" src='./background.js'></script>

现在在你的 js 文件中,你可以使用 ES6 导入来使用其他文件

import * as [name] from "[location]"

0
投票

将该文件包含在manifest.json文件中

"web_accessible_resources":["papaparse.js"]

然后获取并评估它

eval(await (await fetch(browser.runtime.getURL("papaparse.js"))).text());

console.log("Papa", Papa);
© www.soinside.com 2019 - 2024. All rights reserved.