Có thể nghe tất cả các sự kiện javascript không?Giám sát tất cả các sự kiện JavaScript trong bảng điều khiển trình duyệt
Tôi đang cố gắng đoán xem có sự kiện nào được kích hoạt sau khi DOM được sửa đổi bởi yêu cầu AJAX hay không.
Có thể nghe tất cả các sự kiện javascript không?Giám sát tất cả các sự kiện JavaScript trong bảng điều khiển trình duyệt
Tôi đang cố gắng đoán xem có sự kiện nào được kích hoạt sau khi DOM được sửa đổi bởi yêu cầu AJAX hay không.
Với firebug hoặc web inspector bạn có thể sử dụng monitorEvents
:
monitorEvents(myDomElem);
này in tất cả các sự kiện được phát ra bởi myDomElem
ra cửa sổ Console. Sử dụng unmonitorEvents
để ngừng theo dõi sự kiện.
Nếu bạn quan tâm đến việc nhận sự kiện sau khi DOM bị thao tác, hãy xem Mutation Events.
Sửa:
Theo như tôi biết, không có cách nào dễ dàng để chặn tất cả onreadystatechange
sự kiện từ tất cả XMLHttpRequest. Công việc duy nhất xung quanh tôi có thể nghĩ đến là ghi đè đối tượng XMLHttpRequest gốc với bạn thực hiện riêng. Ví dụ:
(function() { // Overriding XMLHttpRequest
var oldXHR = window.XMLHttpRequest;
function newXHR() {
var realXHR = new oldXHR();
realXHR.addEventListener("readystatechange", function() {
console.log("an ajax request was made")
}, false);
return realXHR;
}
window.XMLHttpRequest = newXHR;
})();
Không cần phải nói điều này vô cùng khó hiểu và thường không được thông báo.
có, http://api.jquery.com/ajaxSuccess/ chỉ cần gắn trình bao bọc XHR của jQuery, vì vậy không có sự kiện JS thực sự nào được bắt. Tuy nhiên hack này nên làm các trick :) – knoopx
"thường ill-tư vấn" - tại sao? –
Cập nhật: 'monitorEvents' hoạt động hoàn toàn tốt trong Chrome. –
Để con heo con trả lời câu trả lời của Xavi monitorEvents(myDomElem)
, nếu bạn muốn mọi thứ trừ sự kiện chuột, bạn có thể nhập unmonitorEvents(myDomElem, 'mouse')
.
http://www.briangrinstead.com/blog/chrome-developer-tools-monitorevents có một bài viết hay liên quan đến việc sử dụng các sự kiện theo dõi chrome.
Nhìn theo Đột biến ở đây: http://en.wikipedia.org/wiki/DOM_events#Common.2FW3C_events là những sự kiện bạn đang theo dõi? –
Tôi đang tìm cách chặn sự kiện onreadystatechange trên tất cả XMLHttpRequest – knoopx