2009-08-30 4 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

ответ

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

2

Напишите приложение JavaScript, которое ищет теги HTML-документа, ищущие атрибуты события. Затем вы можете анализировать события любым способом. Вывод можно записать на текущую страницу или записать в другой документ с помощью объекта xmlHttpRequest.

+0

В основном это решение. Однако вы это делаете. Пройдите дерево DOM, и для каждого элемента добавьте функцию захвата в каждое событие. Ваша функция захвата может захотеть использовать существующий обработчик в качестве входных данных, чтобы можно было также вызвать существующих слушателей. – Glenn

Смежные вопросы