我正在开发基于本教程这是一个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?

有帮助吗?

解决方案

<强>更新 首先,您需要处理窗口的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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top