Chrome扩展程序 - onMessage.addListener没有收到消息

时间:2018-04-13 19:35:13

标签: javascript jquery google-chrome-extension

我有一个chrome扩展程序。 我能够成功地将邮件从我的popup.js传递到我的background.js,然后传递到我的content_script.js

但是,在这个特定的例子中,我能够从我的后台脚本中获取发送消息的函数,但是我的popup.js没有“收听”它。

background.js

chrome.extension.onConnect.addListener(function(port) {
    console.log("Connected .....");
    port.onMessage.addListener(function(msg) {
        console.log("Value from popup to background :",msg);
        if(msg)
        {
            switch (msg.message)
            {
                case "getKeyList":
                {
                // Does not seem to work

 sendMessageToPopup({"message":"getKeyList"},function(response){;});
                }
            }
        }
    }
}

function sendMessageToPopup(message, func){
    console.log("Message ",message);
    chrome.runtime.sendMessage(message, func);
}

popup.js

function getKeys(){

    sendToBackground(port, {message:'getKeyList'});
    console.log("Values from popup to background:",{message:"getKeyList"});
}
function sendToBackground(port, message)
{
    // This works fine every time
    port.postMessage(message);
}
port.onMessage.addListener(function(msg) {
    // Does not get called
    console.log("Received at popup ",msg);
}

我已经确认sendMessageToPopup函数在其他情况下调用时有效。

在不同情况下调用时,侦听器也可以工作。

但是,在这种特殊情况下,它不起作用。

0 个答案:

没有答案