在我的Chrome扩展程序中,我正在尝试从popup.js
向content.js
发送消息。这需要基于弹出窗口中的事件发生,因此无法从内容或背景中的消息触发。
我正在使用以下代码来测试消息是否正在传递。
在popup.js
:
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {greeting: "hello"}, function(response) {
alert(response.farewell);
});
});
在content.js
:
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
alert(sender.tab ?
"from a content script:" + sender.tab.url :
"from the extension");
if (request.greeting == "hello")
sendResponse({farewell: "goodbye"});
});
;
问题是,当我打开新标签时,而不是当我处于活动标签页时,才会传递(提醒)消息。
这个想法是用户能够在弹出窗口中选择一个设置,然后使content.js
通过不同的数据发送。因此,只要用户点击特定按钮,我就能发送消息。
有人可以提供帮助,因为在其他所有问题中我都会看到有关消息传递的Google页面链接。这段代码直接来自那里。