1

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

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

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

4

2 回答 2

3

您需要创建一个 CommonJS 模块。在插件的 lib 文件夹中添加您的 .js 文件,并通过“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

于 2013-11-11T05:46:40.033 回答
0

2020年更新:

正如我自己遇到的那样,因为 require 似乎不起作用,这似乎确实起作用:(ES6样式导入)

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

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

创建一个 background.html 文件并添加

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

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

import * as [name] from "[location]"
于 2020-07-27T20:21:07.063 回答