获得有关iframe加载的通知

时间:2014-04-29 07:53:40

标签: 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: "ready",
 attachTo: ["frame"],
 onAttach: function(worker) {
  worker.port.on("gotElement", function(elementContent) {
    console.log(elementContent);
  });
 }
});

pageNavData.js是:

self.port.emit("gotElement", document.location.href);

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

1 个答案:

答案 0 :(得分:0)

这里的问题是在附加侦听器之前发出"gotElement"消息。

你可以用以下方法修复它:

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

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