当我使用content.document在我的扩展中的pageLoad函数内部时,我可以轻松遍历当前窗口,但是当我尝试在另一个使用setInterval调用的函数中访问它时,我无法访问content.document。
我尝试了content.document,document.defaultView,window.content.document以及我能想到的基本上所有其他明智的组合。
请帮忙。感谢。
答案 0 :(得分:1)
我通过从这样的事件中获取文档对象来实现此目的:
e.target.defaultView.document
事件对象在任何事件侦听器函数中都可用 - 例如您可能通过执行以下操作来捕获文档加载事件:
var appcontent = window.document.getElementById('appcontent');
appcontent.addEventListener('DOMContentLoaded', onPageLoad, false);
在此示例中,onPageLoad函数获取可用于获取文档的事件参数。
为了能够在其他地方访问文档对象,请设置指向该文档对象的全局变量。如果使用jQuery,将其作为$ function的可选第二个参数传递(即jQuery工作的上下文)。
答案 1 :(得分:0)
我不确定为什么那不起作用(我必须看到更多代码)。但是,另一种方法是使用gBrowser.selectedBrowser.contentDocument
。