繁体   English   中英

chrome.runtime.onMessage.addListener未在创建的标签中注册

chrome.runtime.onMessage.addListener not registering within created tab

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

当我创建一个新标签页(新标签页加载一个网站,即Google.com)时,以下脚本从我的background.js中注入。

$(function(){
  //this fires when tab is created and script injected
  chrome.runtime.sendMessage({title: window.document.title}, function(){});
  //this fires when clicking on element in created tab
  document.getElementById("Username").addEventListener("click", function(){
    chrome.runtime.sendMessage({someMessageFromLiveSite: 'Clicked in live site!'});
  });

  chrome.runtime.onMessage.addListener(function(msg, _, sendResponse) {
    //this never fires
    chrome.runtime.sendMessage({title: 'This is the created tab responding to a msg'}, function(){});
    //code continues...

如上所述, chrome.runtime.sendMessage似乎可以正常工作,香草JS事件侦听器也可以,但是chrome.runtime.onMessage侦听器似乎未添加/未响应扩展其他部分发送的消息(背景或其他创建的页面)。

1 个回复

感谢Xan在这里的回答 ,我意识到我正在尝试使用chrome.runtime.sendMessage从后台将消息广播到所有创建的选项卡,但是如所解释的,这不会广播,因此chrome.tabs.sendMessage(TAB_ID....为了使侦听器在我创建的内容选项卡上做出响应,需要chrome.tabs.sendMessage(TAB_ID....

尽管标题在技术上不适合我遇到的问题,但对我来说似乎是正确的症状,因此此答案可能仍然对其他人有所帮助。

4 新标签页上的Chrome.runtime.onMessage.addListener未从popup.js接收消息

我在popup.js中有以下代码,该代码响应按下按钮来获取所有选项卡,创建一个新选项卡(template.html),并将这些选项卡作为数组发送到新选项卡。 稍后,我将删除当前选项卡,并在一页上显示链接以节省空间(这就是扩展的想法)。 创建的选项卡包括template.js文件: ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM