1

我想监视 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 更改
  • 适用于浏览器的多个窗口

先感谢您。

4

1 回答 1

1

You should be using a progress listener for that. Your onLocationChange will be called every time the location of the current tab changes, you would only need to look at aURI.spec. The same approach is used to update the location bar in Firefox.

于 2012-05-16T18:37:55.513 回答