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 が変更された場合 (focus および load イベントが発生)、location.href の操作が困難になります。 、ユーザー アクティビティのデータを保存するときに最適化するために、いくつかの手直しが必要です

コードに次の動作が必要です。

  • タブ選択で動作
  • タブの location.href の変更に対応
  • ブラウザの複数のウィンドウで動作します

前もって感謝します。

4

1 に答える 1

1

そのためには進行状況リスナーを使用する必要があります。onLocationChange現在のタブの場所が変更されるたびに呼び出されますaURI.spec。同じアプローチを使用して、Firefox のロケーション バーを更新します。

于 2012-05-16T18:37:55.513 に答える