繁体   English   中英

框架和Edge Extension内容脚本之间如何通信?

[英]How to communicate between frame and Edge Extension content script?

我正在开发Edge扩展,我需要将消息从框架文档 (不是顶部文档,顶部文档工作正常)发送到内容脚本。
如下:

`contentscript.js
window.addEventListener("message", function(event) {
    console.log("window top message...event:");
    console.log(event);
});`

使用以下内容从框架文档发送消息:

window.top.postMessage("Hi, I am from frame", "*").

在控制台面板中,我可以看到window top message...event:然后浏览器重新加载页面。 似乎该消息已被阻止。
扩展名可以从github获得
重现步骤:
加载扩展程序,打开Google ,打开控制台面板,切换到Frame,然后键入

window.top.postMessage("Hi, I am from frame", "*").

有人可以帮忙吗?

如果您有背景页面,并且您的contentscript.js可以访问browser. 对象,“便宜”的简单方法可能是将邮件退回给扩展名并返回,如下所示:

contentscript.js
browser.runtime.sendMessage({name: 'bounce', payload: {name: hello}});

background.js
browser.runtime.onMessage.addListener(function (request, sender) {
  if (request.name === 'bounce') {
    browser.tabs.sendMessage(sender.tab.id, request.payload);
  }
});

然后在您的内容{name: hello}上收听{name: hello} 所有框架(包括顶部)都应收到此消息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM