Javascript 获取有关iframe加载的通知

Javascript 获取有关iframe加载的通知,javascript,firefox-addon,firefox-addon-sdk,Javascript,Firefox Addon,Firefox Addon Sdk,我正在开发一个扩展,每当iframe加载并准备就绪时,我都需要得到通知。我使用了page mod,但没有得到预期的输出。这是我的代码: var data = require("sdk/self").data; var pageMod = require("sdk/page-mod"); pageMod.PageMod({ include: ['*'], contentScriptFile: data.url("pageNavData.js"), contentScriptWhen: "r

我正在开发一个扩展,每当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);

有人能看出这有什么问题吗?

这里的问题是在连接侦听器之前发出了
“gotElement”
消息

您可以通过以下方式进行修复:

setTimeout(_ => self.port.emit("gotElement", document.location.href));

如果您不需要contentScript,只需在
onAttach
处理程序中执行您想要执行的操作。

代码看起来很好。你看到了什么输出?可能会有帮助。