Firefox addon Firefox插件将变量导出到页面
我有一个Firefox插件,它只有一个入口点:一个启动外部应用程序的函数调用 我如何在打开所有页面时将该函数调用导出到所有页面中(实际上,它不是每个页面,而是由页面URL决定),以便知道我的扩展的页面可以调用它 注意:插件无需回调页面或访问页面上的任何信息。您可以使用。在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(
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()
(将函数调用从内容脚本传播到主加载项代码中)实现了这一点。谢谢你们。