firefox插件将工作者附加到选项卡

时间:2016-01-21 21:06:12

标签: firefox firefox-addon firefox-addon-sdk

在我的主index.js中,我正在监听标签就绪事件:

tabs.on('ready', function(tab){
  deploy_scripts(tab)
})

var deploy_scripts = function deploy_scripts(tab) {
  tab.my_content_scripts = tab.attach({
    contentScriptFile: [<files>]
  })
  tab.my_content_scripts.port.on("message_from_content_script", function(msg){
    tabs.activeTab.my_content_scripts.port.emit("message_to_content_script", <some_data>)
  })
}

当该选项卡收到页面加载事件时,这基本上会将一些内容脚本部署到选项卡。由于.attach()方法返回一个worker,我将该worker作为属性分配给该选项卡。

当我稍后通过tabs.activeTab访问选项卡时,该工作程序仍然作为该选项卡上的属性存在,我使用端口向工作人员发送消息。我在我的插件中的其他地方做了类似的事情并且它工作正常,但由于某种原因,脚本将不会收到针对此特定情况的消息。

我在部署的内容脚本中收到了这样的消息

self.port.on("message_to_content_script", function(msg){
  // do something with data
})

我的index.js文件没有抛出错误,因为tabs.activeTab.my_content_scripts.port.emit存在,但尽管我的内容脚本没有收到任何内容。

0 个答案:

没有答案
相关问题