chrome.runtime.onMessage没有收到消息

时间:2018-09-25 07:35:22

标签: google-chrome-extension

我正在尝试创建我的第一个扩展,我想在该扩展中将消息从contentScript发送到popup.js脚本,但是没有收到该消息。

background.js

chrome.runtime.onInstalled.addListener(function() {
  chrome.webNavigation.onCompleted.addListener(function() {
    chrome.browserAction.setPopup({popup: 'popup.html'});
    chrome.tabs.executeScript({
      file: 'contentScript.js'
    });
  }, {url: [{hostSuffix : 'domain.com'}]});
});

contentScript.js(此处尝试将其放在加载脚本之外,但无济于事)

var s = document.createElement('script');
s.src = chrome.extension.getURL('script.js');
(document.head||document.documentElement).appendChild(s);
s.onload = function() {
  s.remove();
  chrome.runtime.sendMessage({greeting: "hello"}, function(response) {
    return true;
  });
};

popup.html

<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
    <h1>HI</h1>
    <section id='red'></section>
    <script src="popup.js"></script>
  </body>
</html>

popup.js

chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
    console.log("HEREEEE");
    document.getElementById("red").innerHTML += "Hello";
  }
);

清单

{
  "name": "new extension",
  "version": "1.0",
  "description": "Build an Extension!",
  "permissions": ["activeTab", "cookies", "sessions", "declarativeContent", "webNavigation", "http://*/*", "https://*/*"],
  "background": {
    "scripts": ["background.js"],
    "persistent": false
  },
  "icons": {
    "16": "images/get_started16.png",
  },
  "manifest_version": 2,
  "web_accessible_resources": [
    "script.js"
  ]
}

background.js正在等待页面完全加载,然后为browserAction执行contentScript和setPopupAction popup.html-存在popup.js的脚本。 contentScript将执行另一个脚本并发送一条消息。 popup.js正在侦听消息,但消息从未到达。你知道为什么吗?是否因为background.js事件?

我的意图是等待某些页面(不能使用pageAction,因为它不允许我添加徽章),然后使用适当的内容更新扩展弹出窗口。

0 个答案:

没有答案