【问题标题】:Cant send message from background script to content script无法将消息从后台脚本发送到内容脚本
【发布时间】:2020-05-01 06:50:27
【问题描述】:

我正在尝试从后台脚本向内容脚本发送消息,但它不起作用,尝试了多种我找到的解决方案,但没有一个起作用。

我检查了背景和内容脚本都可以正常工作。

我尝试使用 chrome.runtime\extention 以及消息和请求...

希望你能告诉我我做错了什么。

清单:

{
  "manifest_version": 2,
  "name": "ChangeLang",
  "description": "change written text lang",
  "version": "1.3",
  "permissions": ["storage", "contextMenus", "activeTab", "tabs"],

  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  },

  "browser_action": {
    "name": "Click to change the icon's color"
  },

  "content_scripts": [{
    "matches": ["<all_urls>"],
    "js": ["changelang.js"]
  }],

  "background": {
    "scripts": ["background.js"]
  }
}

background.js:

chrome.browserAction.onClicked.addListener(function(info, tab) {
  alert("click"); // this alert works
  chrome.tabs.sendMessage(tab.id, {
    "functiontoInvoke": "change"
  });
  alert("click"); // this alert doesn't works
});

content.js:

function changeLang() {
  // do something
}

chrome.runtime.onMessage.addListener(function(message, sender, callback) {
  alert("msg"); // never worked
  if (message.functiontoInvoke == "change") {
    changeLang();
  }
});

【问题讨论】:

  • 查看文档:browserAction.onClicked 回调仅使用一个参数tab 调用。

标签: javascript html google-chrome google-chrome-extension


【解决方案1】:

我认为您的代码设置应如下所示:

chrome.browserAction.onClicked.addListener(function(info, tab) {
  alert("click"); // this alert works
  chrome.tabs.sendMessage(tab.id, {
    "functiontoInvoke": "change"
  }, function(response) {
         response.yourFunc();
     });
  alert("click"); // this alert doesn't works
});

chrome.runtime.onMessage.addListener(function(message, sender, callback) {
  alert("msg"); // never worked
  if (message.functiontoInvoke == "change") {
    callback({yourFunc: changeLang()});
  }
});

【讨论】:

  • 我试过了,但结果是一样的。知道会出什么问题吗?
猜你喜欢
  • 2014-07-16
  • 1970-01-01
  • 2014-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-14
  • 2013-06-26
相关资源
最近更新 更多