我遇到了将数据从后台脚本发送到我的脚本的问题pageAction。我的内容脚本添加了一个,<iframe />并且中的JavaScript <iframe />正在从我的后台脚本接收数据,但是似乎未在中检索到它pageAction。
在我的后台脚本中,我有类似以下内容:
chrome.tabs.sendMessage(senderTab.tab.id,
{
foo:bar
});
我的后台脚本senderTab.tab.id中的onMessage侦听器中的“发送者”在哪里?
在<iframe />内容脚本注入的JavaScript中,我有类似以下内容:
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
console.log("received in iframe:", request);
}
});
在<iframe />完全按预期接收该消息。
我将相同的JavaScript放入了page_action.js,但是它没有从后台脚本接收任何数据。chrome.pageAction.show(senderTab.tab.id);在我致电之前激活pageActionchrome.tabs.sendMessage(senderTab.tab.id ...
附加到我的pageAction的HTML页面不是同一选项卡的一部分吗?由于这tabId使我能够激活/“显示”图标,因此我认为pageAction的JavaScript中的侦听器也应从chrome.tabs.sendMessage(senderTab.tab.id ...
在内容脚本中,我使用以下命令将数据发送到后台脚本:
chrome.runtime.sendMessage({
foo: bar
});
当内容脚本发送上述消息时,pageAction JavaScript会将其拾取。
如何获取后台脚本以将数据正确发送到pageAction?我不想有pageAction请求/投票,而是希望pageAction仅监听和接收。例如,如果显示了pageAction HTML,它应该能够在后台页面进行更改时实时更新。
梵蒂冈之花
相关分类