我正在尝试开发一个firefox插件,每当加载页面时都应执行该插件。有人可以告诉我使用哪个事件。在firefox中,当我打开一个新窗口时,document.ready被执行,而当我打开一个新标签时,它不被执行:(。
任何帮助表示赞赏。
谢谢

最佳答案

本来我是迷上DOMContentLoaded的,但是这花了很长时间,因为它直到Firefox为页面及其任何iframe加载DOM树都不会触发。

Load同样也很慢,因为它要求页面以及所有图像完全加载。

最终,在经历了这些,以及为nsIWebProgressListener.onLocationChange和其他一些人建立XPCOM之后,我最终选择了DOMTitleChanged这样:

appcontent.addEventListener("DOMTitleChanged", events.onPageLoad, true);

(请注意,即使HTML页面没有DOMTitleChanged属性,或者具有与上一页等效的<title><title>似乎也会被触发。)

我不记得100%为什么选择DOMTitleChanged,但是我认为这是因为它最适合我的需求-基本上,这是获取用户导航URL的最快方法,而无需等待任何加载同时以各种可能的方式触发新页面的加载...新标签页,页面更改等。

唯一要注意的是,您将需要添加代码来手动查找加载项的叠加启动代码中的URL,因为除非您在FF开始在新窗口中加载第一页之前addEventListener(),否则您将添加事件侦听器为时已晚,无法可靠地捕获初始页面加载。 (这是因为每次Firefox打开一个新窗口时,都会加载一个新的,隔离的附件实例。)

关于jquery - Firefox插件和document.ready,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/732629/

10-12 14:09
查看更多