我正在开发基于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?
答案 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扩展的所有信息