我遇到了将数据从后台脚本发送到我的脚本的问题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,它应该能够在后台页面进行更改时实时更新。
3 回答
梵蒂冈之花
TA贡献1900条经验 获得超5个赞
一次只能打开一个 pageAction
弹出窗口:为当前窗口的活动选项卡定义了一个弹出窗口,并由用户单击页面操作按钮来打开。通过使用chrome.pageAction.setPopup()
并指定,可以为不同的标签分配不同的HTML文档tabId
。但是,使用的任何通信方法都只能与当前打开的通信,而不能与多个通信。从您的评论看来,您似乎在谈论的不是实际pageAction
弹出窗口。请更详细地描述。
添加回答
举报
0/150
提交
取消