是否可以收听所有 javascript 事件?
我试图猜测在 DOM 被 AJAX 请求修改后是否触发了一个事件。
是否可以收听所有 javascript 事件?
我试图猜测在 DOM 被 AJAX 请求修改后是否触发了一个事件。
使用firebug或web 检查器,您可以使用monitorEvents
:
monitorEvents(myDomElem);
这将打印由myDomElem
控制台发出的所有事件。使用unmonitorEvents
停止监视事件。
如果您对在操作 DOM 后获取事件感兴趣,请查看Mutation Events。
编辑:
据我所知,没有简单的方法可以拦截onreadystatechange
来自所有 XMLHttpRequest 的所有事件。我能想到的唯一解决方法是用您自己的实现覆盖本机 XMLHttpRequest 对象。例如:
(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;
})();
毋庸置疑,这是非常笨拙的,而且通常是不明智的。
为了支持 Xavi 的回答monitorEvents(myDomElem)
,如果您想要除鼠标事件之外的所有内容,则可以输入unmonitorEvents(myDomElem, 'mouse')
。
http://www.briangrinstead.com/blog/chrome-developer-tools-monitorevents有一篇关于使用 chrome 监视器事件的好文章。