我有一个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
函数在其他情况下调用时有效。
在不同情况下调用时,侦听器也可以工作。
但是,在这种特殊情况下,它不起作用。