Firefox addon Firefox插件将变量导出到页面

Firefox addon Firefox插件将变量导出到页面,firefox-addon,firefox-addon-sdk,Firefox Addon,Firefox Addon Sdk,我有一个Firefox插件,它只有一个入口点:一个启动外部应用程序的函数调用 我如何在打开所有页面时将该函数调用导出到所有页面中(实际上,它不是每个页面,而是由页面URL决定),以便知道我的扩展的页面可以调用它 注意:插件无需回调页面或访问页面上的任何信息。您可以使用。在include字段中,您可以指定要执行函数的URL,它支持字符串表和RegExp。以下示例来自firefox文档: var pageMod = require("sdk/page-mod"); pageMod.PageMod(

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

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

注意:插件无需回调页面或访问页面上的任何信息。

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

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

pageMod.PageMod({
  include: "*.mozilla.org",
  contentScript: 'console.log("Call your function here!");'
});
或者,如果您不想将脚本附加到页面的窗口中,可以使用 例如:

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!")
  }
});

这听起来很有希望,但这并不是我所需要的。我的最终目标是让一个页面(已经编码为调用我的mod)能够调用我的mod中的函数。这似乎是另一种方式:我的mod会影响我页面中运行的脚本。不过,也许我也可以让这些工作人员这样做。不,如果你想要这样的东西,我相信
tabs
是更好的解决方案。我编辑了我的答案。@biziclop可能你正在寻找
Cu.exportFunction
:你觉得Christos怎么样?或者可能创建一个沙盒来处理chrome prvielage网站范围内的内容,比如:最终它是
sdk/tabs
(附加内容脚本)、
exportFunction()
(将内容脚本函数注入页面)和
port.emit()
(将函数调用从内容脚本传播到主加载项代码中)实现了这一点。谢谢你们。