收听来自注入的<iframe>的消息

时间:2019-11-25 12:38:18

标签: google-chrome google-chrome-extension sendmessage message-passing

我正在开发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是未定义的。

这是预期的吗?还有什么监听消息的替代方法?

0 个答案:

没有答案