我正在开发Chrome扩展程序。我想将后台脚本中的消息发送到我从内容脚本注入到页面的<iframe>
中。
在内容脚本中,我只是将IFrame附加到DOM,而我的网站是src。一切正常。
在后台脚本中,我发送消息:
chrome.tabs.query({ active: true, currentWindow: true }, function(tabs) {
if (tabs[0].id) {
chrome.tabs.sendMessage(tabs[0].id, "message", response => {
console.log(response);
});
}
});
在内容脚本中,我成功接收到消息:
chrome.runtime.onMessage.addListener(function(
request,
sender,
sendResponse,
) {
console.log(
sender.tab
? "from a content script:" + sender.tab.url
: "from the extension",
);
});
但是当我在嵌入式站点中使用上述脚本时,出现错误:
page.html:17 Uncaught TypeError: Cannot read property 'addListener' of undefined
at page.html:17
因此,chrome.runtime.onMessage是未定义的。
这是预期的吗?还有什么监听消息的替代方法?