Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 要从main.js发出的Firefox扩展端口_Javascript_Firefox Addon Sdk - Fatal编程技术网

Javascript 要从main.js发出的Firefox扩展端口

Javascript 要从main.js发出的Firefox扩展端口,javascript,firefox-addon-sdk,Javascript,Firefox Addon Sdk,我正在构建一个firefox扩展,并尝试在main.js和contentScriptFile之间进行通信。基本上,当一个选项卡关闭时,我想要的是调用contentScriptFile中的函数,该函数被注入所有其他打开的选项卡中。我当前使用的端口代码似乎不起作用 Main.js var tabs = require("sdk/tabs"); tabs.on('close', function(tab){ if(tab.url.indexOf('example.com/url2') > -1

我正在构建一个firefox扩展,并尝试在main.js和contentScriptFile之间进行通信。基本上,当一个选项卡关闭时,我想要的是调用contentScriptFile中的函数,该函数被注入所有其他打开的选项卡中。我当前使用的端口代码似乎不起作用

Main.js

var tabs = require("sdk/tabs");
tabs.on('close', function(tab){

if(tab.url.indexOf('example.com/url2') > -1)
{
for (let tab of tabs)
{
  tab.attach({}).port.emit("doCORN", 'eg1');
}
}
else if(tab.url.indexOf('example.com/url1') > -1)
{
for (let tab of tabs)
{
  tab.attach({}).port.emit("doCORN", 'eg2');
}
}
});
Contentscriptfile

self.port.on("doCORN", function(msg) {
console.log(msg)
});

但它似乎不起作用。那么,有人有想法吗?

内容脚本是如何附加的?如果通过代码中显示的tab.attach调用附加脚本,则代码将正常工作。如果您通过pageMod附加内容脚本,则不会,因为您在此处创建的工作实例不知道其他内容脚本。@canuckistani,谢谢。我已经附加使用Pagemod。修正了这个问题。必须跟踪所有工人,并称之为工人港。谢谢你的帮助。是的-阅读以了解内容脚本之间交流的局限性。@canuckistani谢谢