我正在开发一个基于 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?
最佳答案
更新: 首先,您需要处理窗口的加载事件,然后向 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 扩展的所有信息
关于javascript - 在 XUL 中,我如何知道浏览器标签已完成加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/835313/