首页 > 解决方案 > Web 应用程序和 Chrome 扩展程序之间的消息传递 - 如何获取消息?

问题描述

我正在开发一个 chrome 扩展。

在我的 Web 应用程序中,有一个嵌入在 HTML 页面中的 JavaScript,它试图与我的扩展程序交互。

let extId = "extension id";

var extPort = chrome.runtime.connect(extId);
extPort.postMessage({from: "WebServer", fn: "greeting"});

在我的扩展 - 后台脚本中,事件侦听器设置为处理消息。

chrome.runtime.onConnectExternal.addListener(function(port) {
    port.onMessage.addListener(function(message, sender) {
        if (message.from == "WebServer") {
            if (message.fn == "greeting") {
                console.log("Message from Web Server");
            }
        }
    });
});

此外,后台脚本中有一个函数可以使用 XHR 获取 HTML 页面。该功能工作正常。

问题:该消息(显示在控制台日志中)只有当我在浏览器中访问 HTML 页面时才能得到,但当页面由 XHR 获取时不能得到。为什么?(对不起,我是 JavaScript 和 Chrome 扩展的新手)

标签: javascriptgoogle-chrome-extensionmessage-passing

解决方案


推荐阅读