我正在尝试从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文件
答案 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);
});
});