我正在开发一个 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,打开控制台面板,切换到框架,然后键入
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}
。所有帧(包括顶部(都应收到此消息。