我写了一个侧边栏插件:
- 获取当前页面的 URL
- 使用 URL 调用个人服务器
- 并在边栏中显示上下文信息
目前,此函数在以下事件中被调用:
- 启用插件
- 窗口加载
- 应用内容加载
- 在 TabSelect 上
但是,有时网页需要很长时间才能触发“加载”事件。因此,我更喜欢一种在发送当前页面的第一个请求后立即调用我的插件功能的方法。
我听说 Progress Listener 和 Observer 可能会有帮助。我尝试了快速而肮脏的 Progress-Listener 代码,但它没有按预期工作(也许是我的错)。
请求建议/链接/代码示例。提前致谢。
最佳答案
正如之前预期的那样,Observer 正是我们所需要的。我所需要做的就是收听主题“http-on-modify-request”并调用自定义方法(基于任何自定义检查的要求)。
示例代码:
var MyAwesomeObserver = {
observe: function(subject, topic, data)
{
if (topic == "http-on-modify-request") {
MyLogger.info('Yosssssssss! '+topic); //customer Logger that uses nsIConsoleService
MyAwesomeObject.notSoAwesomeFunction(); //invoke the custom method here
}
},
get observerService() {
return Components.classes["@mozilla.org/observer-service;1"]
.getService(Components.interfaces.nsIObserverService);
},
register: function(){
this.observerService.addObserver(this, "http-on-modify-request", false);
},
}
MyAwesomeObserver.register();
关于javascript - Firefox 插件 : How to fire event when page load *starts*?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3617427/