javascript - 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 扩展的新手)
解决方案
推荐阅读
- dart - 尝试在颤动中显示图像时出现异常
- wpf - WPF 文本框中的转换器报告绑定错误
- php - 使用表事件的 id 插入 EventException 表时出错
- mdriven - 覆盖时 GetVMImageUrl 不起作用
- r - 如何在不同 data.frames 中的多个列上应用 na.locf,所有列都以“价格”结尾
- python - python中逐行逐列的多个矩阵
- react-native - 如何在不影响内部视图元素的情况下应用阴影来反应原生视图?
- azure - 如何使用特定于 Azure VPN 要求的 MakeCert 命令为 Azure VPN 创建根证书
- wordpress - 新参数 FB 添加到外部链接 (fbclid)
- android - Zebra TC25 - 如何在后台继续接收广播意图