当我使用content.document在我的扩展中的pageLoad函数内部时,我可以轻松遍历当前窗口,但是当我尝试在另一个使用setInterval调用的函数中访问它时,我无法访问content.document。

我尝试了content.document,document.defaultView,window.content.document以及我能想到的基本上所有其他明智的组合。

请帮忙。感谢。

有帮助吗?

解决方案

我通过从这样的事件中获取文档对象来实现此目的:

   e.target.defaultView.document

事件对象在任何事件侦听器函数中都可用 - 例如您可能通过执行以下操作来捕获文档加载事件:

   var appcontent = window.document.getElementById('appcontent');
   appcontent.addEventListener('DOMContentLoaded', onPageLoad, false);

在此示例中,onPageLoad函数获取可用于获取文档的事件参数。

为了能够在其他地方访问文档对象,请设置指向该文档对象的全局变量。如果使用jQuery,将其作为$ function的可选第二个参数传递(即jQuery工作的上下文)。

其他提示

我不确定为什么那不起作用(我必须看到更多代码)。但是,另一种方法是使用 gBrowser.selectedBrowser.contentDocument

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