javascript - Firefox 插件 : How to fire event when page load *starts*?

标签 javascript firefox firefox-addon

我写了一个侧边栏插件:

  • 获取当前页面的 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/

相关文章:

javascript - 我如何将 ascii 码转换为 javascript 中的字符

javascript - Gear S4 Web 应用程序在语音合成时不断崩溃

javascript - Python、Flask - 如何使用 DHTML uploader 加载文件

css - :nth-letter pseudo-element is not working

firefox - 从传统的基于 XUL 的附加组件中访问附加 SDK?

javascript - document.body.addEventListener 不工作

javascript - 是否可以禁用整个主体(包括内部 iFrame)的填写付款表格?

javascript - 如何使用 Polymer 2 在 Firefox 上的 Web 组件中捕获指针事件?

javascript - Firefox 的内部文本解决方案

javascript - 如何使用$.ajax读取本地xml文件?