假设注入(inject)了一个面板:
//main.js
var ext = require("sdk/panel").Panel({
width: 300,
height: 500,
contentScriptFile: [data.url("js/angular/angular.min.js"),
data.url("js/angular/angular-route.js"),
data.url("js/app.js"),
data.url("js/utilities.js"),
data.url("js/services.js"),
data.url("js/directives.js"),
data.url("js/controllers.js"),
data.url("js/popup.js")],
contentScriptWhen: "ready"
});
我可以将监听器附加到事件选项卡的 DOM 以检测一些事件:
if(window.customObj != undefined)
{
window.postMessage(window.customObj, window.location.href);
}
如何通过 popup.js 或 main.js 中的自定义消息获取我发送的对象?
最佳答案
您的主脚本只能与内容脚本通信,包括那些注入(inject)到选项卡和那些注入(inject)到面板的脚本。您的内容脚本可以与您的主脚本和页面脚本通信。因此,为了从页面脚本中获取某些内容到 main.js,您的路径需要是:
page script/DOM --> content script
content script --> main script
并且,可选地,main script --> panel script
关于javascript - 如何为来自页面脚本的自定义消息创建事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26239723/