当我在扩展中的 pageLoad 函数中使用 content.document 时,我可以轻松地遍历当前窗口,但是当我尝试在另一个函数中访问它时,使用 setInterval 调用它时,我无法访问 content.document。
我尝试了 content.document、document.defaultView、window.content.document 以及我能想到的所有其他合理组合。
请帮忙。谢谢。
当我在扩展中的 pageLoad 函数中使用 content.document 时,我可以轻松地遍历当前窗口,但是当我尝试在另一个函数中访问它时,使用 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,请将其作为可选的第二个参数传递给 $ 函数(即 jQuery 工作的上下文)。
我不确定为什么那行不通(我必须查看更多代码)。但是,另一种方法是使用gBrowser.selectedBrowser.contentDocument
.