我需要在我的FireFox插件中的main.js中导入/包含一个javascript文件,但由于main.js不包含“文档”,我无法以正常/简单的方式插入它。
我尝试了一些东西,但从来没有让它发挥作用。
以下是我想要完成的事情: 我使用外部时区检测脚本(https://bitbucket.org/pellepim/jstimezonedetect/overview)。我需要确定main.js中的时区以下载Google日历文件+将时间转换为用户时区。这不能在以后完成!到目前为止,我只是将代码手动插入到文件中(复制+粘贴),但这并不是一个非常好用且清晰的方法。
答案 0 :(得分:2)
您需要创建一个CommonJS模块。将你的.js文件添加到addon的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
答案 1 :(得分:1)
2020更新:
在我自己遇到的情况下,并按要求似乎不起作用 看来确实可行:(ES6样式导入)
在清单中将“脚本”替换为“页面”,就像这样-
"background": {
"page": "background.html"
}
创建一个background.html文件并添加
<script type="module" src='./background.js'></script>
现在在您的js文件中,您可以通过ES6导入使用其他文件
import * as [name] from "[location]"