消息未在内容和后台脚本文件之间传递

时间:2014-05-18 11:06:46

标签: javascript jquery google-chrome-extension

我正在尝试从background.js向内容脚本文件script.js发送消息。下面是代码

的script.js

chrome.runtime.onMessage.addListener(function (msg, sender, sendResponse) {
//    alert('Message from View:\n'
//          + JSON.stringify(msg));
    alert(msg);
    if (msg.method === 'sendHTML')
    {
        //process the return code

        sendResponse({ data: "Your DOM is here"});
    }
});

background.js

chrome.browserAction.onClicked.addListener(function (tab)
{
//    var url = tab.url.toLowerCase();
//    if(url.indexOf("middlecoin") == -1)
//        alert("You are not on MiddleCoin Page");
//    else
//        chrome.tabs.create({ url: loaderURL + tab.id });
    alert("Clicked Call");
    chrome.runtime.sendMessage({method: "sendHTML"}, function(response) {
      alert(response.data);
    });

});

未调用警报response.data)。我哪里做错了?

让我告诉你整个扩展程序中没有html文件

1 个答案:

答案 0 :(得分:1)

您需要使用chrome.tabs.sendMessage代替chrome.runtime.sendMessage将消息从后台页面发送到内容脚本。要将消息发送到当前选项卡,您可以使用传递给browserAction.onClicked的侦听器的选项卡对象:

chrome.browserAction.onClicked.addListener(function (tab) {
  chrome.tabs.sendMessage(tab.id, {method: "sendHTML"}, function(response) {
    alert(response.data);
  });
});