在XUL中,我如何知道浏览器标签已完成加载?

时间:2009-05-07 15:22:46

标签: javascript firefox dom xul

我正在开发基于this tutorial的firefox扩展,这是一个FF 2.0扩展(教程的第二部分位于this url

重要的是它使用

<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?

1 个答案:

答案 0 :(得分:2)

<强>更新 首先,您需要处理窗口的load事件,然后向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