Firefox 附加组件将变量导出到页面

Firefox add-on export variable into page

我有一个 Firefox 插件,它只有一个入口点:一个启动外部应用程序的函数调用。

如何在所有页面打开时将该函数调用导出到所有页面(实际上它不会是每个页面,它将在页面上决定URL), 以便知道我的扩展的页面可以调用它?

注意:加载项无需回调页面或访问页面上的任何信息。

您可以使用 page-mods。在 include 字段中,您可以指定要执行函数的 URL,它支持 table 字符串和 RegExp。以下示例来自 firefox 文档:

var pageMod = require("sdk/page-mod");

pageMod.PageMod({
  include: "*.mozilla.org",
  contentScript: 'console.log("Call your function here!");'
});

或者如果您不想将脚本附加到页面的 window 中,您可以使用 tabs 例如:

var tabs = require("sdk/tabs");
tabs.on('ready', function(tab) {
  console.log('tab is loaded', tab.title, tab.url);
  if(tab.url.indexOf("mozilla") != -1) {
    console.log("Call your function here!")
  }
});