2009-08-30 41 views
0

我希望得到關於網頁中發生的所有事件的通知。如何處理網頁中的所有事件

對於每一個單一的事件我使用的是這樣的:

if(document.addEventListener){ 
    document.addEventListener('click', function(e) { something(e) } , true); 
}else{ 
    if(document.attachEvent){ 
     document.attachEvent('onclick', function(e) { something(e) }); 
    } 
} 

有一個簡單的跨瀏覽器的方式來得到通知所有的網頁,而不是聽分開每個事件的事件(不使用jQuery的)?

+0

沒有元,監聽,我知道的所有事件。 – Glenn 2009-08-30 11:43:25

回答

1

嘗試調用作爲參數傳遞另一個函數裏面的函數調用的所有通知操作

function addEvent(ev,fun){ 
    var hand=function(e){ 
    alert(ev+" event"); //Or other notify operations 
    fun(); 
    } 
    if(document.addEventListener){ 
     document.addEventListener(ev, hand, true); 
    }else{ 
     if(document.attachEvent){ 
      document.attachEvent(ev, hand); 
     } 
    } 
} 
1

全部事件?我真的懷疑你是否考慮過事件冒泡以及onmousemove會產生多少噪音。

堅持使用離散白名單綁定到您真正關心的事項。

+0

我想要得到所有的事件。我會自己處理這些問題。 – Niyaz 2009-08-30 10:52:44

2

編寫一個JavaScript應用程序,用於搜索HTML文檔的標籤以查找事件屬性。然後,您可以以任何您想要的方式分析事件。輸出可以寫入當前頁面或使用xmlHttpRequest對象寫入另一個文檔。

+0

基本上這是解決方案。但是你這樣做。走DOM樹,併爲每個元素添加一個捕獲函數給每個事件。您的捕獲函數可能想要將現有的處理程序作爲輸入,以便現有的偵聽程序也可以被調用。 – Glenn 2009-08-30 11:41:58

相關問題