2012-05-16 64 views
1

我想在Firefox瀏覽器中監控用戶活動,我需要知道它是當前標籤中的location.href。爲此,我使用content.location.href,但是當location.href改變時我需要代碼。我需要知道應該聽什麼事件以及瀏覽器中的對象。在Firefox中監控當前標籤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 
    } 
}; 

此代碼的工作,但有一點點不必要的行爲,當你點擊瀏覽器的地址欄上,模糊事件被激發,並難以定位工作.href如果放在location.href改變(聚焦和負載觸發的事件),需要一些返工節省了用戶的活動數據時

我需要的代碼有這種行爲,以優化:

  • 個工程的選項卡中選擇
  • 文選標籤location.href改變
  • 作品與瀏覽器

預先感謝您的多個窗口。

回答

1

您應該是using a progress listener。每當當前選項卡的位置發生變化時,您的onLocationChange將被調用,您只需要查看aURI.spec。使用相同的方法來更新Firefox中的位置欄。