chrome.runtime.sendMessage仅在使用Chrome调试器进行调试时有效

时间:2018-07-16 12:29:22

标签: javascript google-chrome-extension

我是Chrome Extension开发的新手。我有一个后台脚本,可监听上下文菜单的单击并将消息发送到主popup.js文件。 我正在使用Chrome.runtime.sendMessage()函数。我在popup.js文件中有一个侦听器,用于侦听sendMessage()。有趣的是,该消息仅在调试模式下发送,即在我检查Chrome扩展程序时发送。你能说出为什么会这样

background.js

chrome.contextMenus.onClicked.addListener(function(clickData){
  if(clickData.menuItemId === "trackIT" && clickData.selectionText){
   // Send the parsed data to the labview listening server 
    console.log(clickData.selectionText);
    chrome.runtime.sendMessage({
        msg : "task_trackIT",
        data : {
            "taskName" : clickData.selectionText
        }
    })
  } else {
    console.log("do nothing");
  }

});

popup.js

chrome.runtime.onMessage.addListener(
    function(request, sender, sendResponse){
        if(request.msg === "task_trackIT"){
           console.log(request.data.taskName);
           // httpService.postMessage()
           // xhr.send("1234")
           self.postMessage({"Notes":request.data.taskName})
        }
    }
)

0 个答案:

没有答案