firefox插件将工作程序附加到选项卡
在我的main index.js中,我正在侦听选项卡就绪事件:firefox插件将工作程序附加到选项卡,firefox,firefox-addon,firefox-addon-sdk,Firefox,Firefox Addon,Firefox Addon Sdk,在我的main 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
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>)
})
}
由于tabs.activeTab.my_content\u scripts.port.emit存在,因此从我的index.js文件中抛出时没有错误,但尽管如此,我的内容脚本没有接收任何内容。您的
emit
代码位于消息侦听器中。它跑了吗?您是否从附加的内容脚本发送此消息<代码>“messages”
是一个可怕的消息名称btw@minj是的,我在emit之前放置了一个console.log,它可以运行,并且在emit运行时不会抛出错误。我知道“消息”是一个可怕的名字,但这只是一个例子。我会编辑它。为什么不重新使用tab
而不是tabs.activeTab
?它们可能不相同您的emit
代码在“messages”
侦听器中。它跑了吗?您是否从附加的内容脚本发送此消息<代码>“messages”
是一个可怕的消息名称btw@minj是的,我在emit之前放置了一个console.log,它可以运行,并且在emit运行时不会抛出错误。我知道“消息”是一个可怕的名字,但这只是一个例子。我会编辑它。为什么不重新使用tab
而不是tabs.activeTab
?它们可能不一样
self.port.on("message_to_content_script", function(msg){
// do something with data
})