我正在开发一个扩展程序,我需要在iframe加载并准备就绪时收到通知。我使用page-mod
但我没有得到预期的输出。这是我的代码:
var data = require("sdk/self").data;
var pageMod = require("sdk/page-mod");
pageMod.PageMod({
include: ['*'],
contentScriptFile: data.url("pageNavData.js"),
contentScriptWhen: "ready",
attachTo: ["frame"],
onAttach: function(worker) {
worker.port.on("gotElement", function(elementContent) {
console.log(elementContent);
});
}
});
pageNavData.js
是:
self.port.emit("gotElement", document.location.href);
有人能看出这有什么问题吗?
答案 0 :(得分:0)
这里的问题是在附加侦听器之前发出"gotElement"
消息。
你可以用以下方法修复它:
setTimeout(_ => self.port.emit("gotElement", document.location.href));
虽然您不需要contentScript,只需在onAttach
处理程序中执行您想要执行的操作。