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

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

最佳答案

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

关于javascript - 在 XUL 中,我如何知道浏览器标签已完成加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/835313/

相关文章:

javascript - 函数参数列表太长 |最小化

jquery - 为什么 firefox 显示表格边框的方式与 IE 和 Chromium 不同?

javascript - 在 Firefox Addon 中获取当前浏览器 url

javascript - 为什么 HTMLElement 原型(prototype)与所有实例共享属性而不是为每个元素创建副本?

javascript - Vue.js "emit event"不要冒泡到父元素和祖父元素

javascript - 使用 Jquery 方法将 div 的 CSS 位置从绝对位置更改为固定位置

javascript - 在 ITP (Safari) 中使用 iframe 和 postMessage 进行单点登录(静默登录)

Javascript 到 CSV 函数与 IE 或 Firefox 不兼容

javascript - 与 null-out 相比,delete 对 Object 效率低下,但对 DOM Element 的数据属性有效?

javascript - DOM javascript-添加所有选定的元素