为什么我的popup.js不能与我的background.js通信?

时间:2015-08-05 12:58:06

标签: javascript google-chrome-extension

我有......

的manifest.json

  "background": {
    "scripts": ["background.js"],
    "persistent": false
  }

popup.js

    console.log("before send message");
    chrome.runtime.sendMessage({greeting: "hello"},
        function(reply) {
          console.log("before print reply");
          console.log(reply);
          console.log("after print reply");
        });            
      console.log("after send message");

background.js

chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
      console.log("before send response");
      sendResponse({say: goodbye});      
      console.log("after send response");
  }
);

那么,为什么我的控制台看起来像这样?

before send message
after send message
before print reply
undefined
after print reply

看起来我没有触及background.js中描述的听众内心。

2 个答案:

答案 0 :(得分:0)

没关系。我用来自动重新加载扩展程序的扩展名没有添加background.js页面。我稍后通过查看扩展页面并点击命令-R来添加它。现在一切正常。

答案 1 :(得分:0)

它完美无缺,您发送的是未定义的goodbye变量,而不是"goodbye"字符串。