Firefox插件和document.ready

时间:2009-04-09 03:01:38

标签: jquery firefox plugins

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

1 个答案:

答案 0 :(得分:3)

最初我正在挂钩DOMContentLoaded,但这花了太长时间,因为在Firefox为页面及其任何iframe加载DOM树之前它不会触发。

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

最终,经过这些,以及为nsIWebProgressListener.onLocationChange和其他几个人设置XPCOM,我最终确定了DOMTitleChanged

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

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

我不记得100%为什么选择了DOMTitleChanged,但我相信这是因为它最适合我的需求 - 这基本上是获取用户导航网址的最快捷方式等待加载任何东西,同时按照每种可能的方式触发新页面加载...新选项卡,页面更改以及所有其他内容。

唯一的问题是,您需要添加代码以手动查找附加组件的覆盖启动代码中的URL,除非您在FF开始在新窗口中加载第一页之前addEventListener(),否则您将添加了您的事件监听器太晚,无法可靠地捕获初始页面加载。 (这是因为每次Firefox打开一个新窗口时都会加载一个新的,独立的加载项实例。)