在Firefox中监控当前选项卡location.href

时间:2012-05-16 12:42:02

标签: javascript firefox firefox-addon

我想在Firefox浏览器中监控用户活动,我需要知道当前标签中的location.href。为此,我使用 content.location.href ,但是当location.href更改时我需要代码。我需要知道应该监听哪些事件以及浏览器中的哪些对象。

我的一些代码:

window.addEventListener("load", function load(event){
    window.removeEventListener("load", load, false);
    myExtension.init();
},false);

var myExtension = {
  init: function() {
    var appcontent = document.getElementById("appcontent");
    appcontent.addEventListener("blur", myExtension.onPageBlur, true);
    appcontent.addEventListener("load", myExtension.onPageLoad, true);
    appcontent.addEventListener("focus", myExtension.onPageFocus, true);
  },

  onPageBlur: function () {
    // Doing something when there is no focus
  },

  onPageFocus: function(aEvent) {
    // Doing something when we get focus
  },

  onPageLoad: function(aEvent) {
    // Doing something on page load
  }
};

此代码有效但有一些不必要的行为,当您单击浏览器的位置栏时,会触发blur事件,如果location.href已更改,则难以使用location.href(焦点和加载事件被激活),在保存用户活动数据时需要一些返工来优化

我需要代码有这种行为:

  • 适用于标签选择
  • 适用于标签location.href更改
  • 适用于浏览器的多个窗口

提前谢谢。

1 个答案:

答案 0 :(得分:1)

你应该using a progress listener。每当当前标签的位置发生变化时,系统都会调用onLocationChange,您只需要查看aURI.spec。相同的方法用于更新Firefox中的位置栏。