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