0

我正在开发一个基于本教程的 Firefox 扩展,它是一个 FF 2.0 扩展(本教程的第二部分位于此网址

最重要的是它使用

<iframe id="contentview" src="http://www.ibm.com/developerworks/web" flex="2"/>

在后端代码中,当单击 GO 按钮时,会发生这种情况:

contentview.contentDocument.location.href = urlbox.value;

//Use Firefox XPath to get the raw text of the document
var doctext = contentview.contentDocument.evaluate(
    "string(.)", document, null, XPathResult.STRING_TYPE, null).stringValue;

我收到 xpath 错误,但这不是我的问题。我对 FF 3.0 的问题是 contentDocument 值是指加载的旧站点,而不是由 href-change 加载的站点。

所以我的问题是:我怎样才能创建一个类似的窗口,但是当加载的文档完成时会通知某人,这样我就可以访问它的 DOM?

4

1 回答 1

2

更新: 首先您需要处理窗口的加载事件,然后将事件侦听器添加到 iframe 元素

window.addEventListener("load",Listen,false);
function Listen()
{
  var frame = document.getElementById("contentview");
  frame.addEventListener("DOMContentLoaded", DomLoadedEventHandler, true);          
}

    function DomLoadedEventHandler() {
    var frame = document.getElementById("contentview");
    alert(frame.contentDocument.location.href);
    }

用您的事件处理程序名称替换“DomLoadedEventHandler”。

我建议您查看 Mozilla 的官方网站以了解有关 Firefox 扩展的所有信息

http://developer.mozilla.com

于 2009-05-07T15:31:59.667 回答