拦截浏览器中的所有UI事件

时间:2012-11-22 15:35:41

标签: javascript google-chrome javascript-events

有没有办法拦截浏览器中的所有UI(触摸/点击等)事件(用于监控/调试等) - 在javascript代码和任何chrome工具中 - 一切顺利。作为一个例子,我想标记一些事件(通过添加一些属性)并在处理它(甚至不止一次)时捕获它以查看堆栈跟踪等

更新:即使未在代码中的某处传播(冒泡/捕获),也要查找每个事件的拦截

1 个答案:

答案 0 :(得分:3)

您可以从Event构造函数中获取事件类型列表。

Object.keys(Event).forEach(function (etype) {
    document.addEventListener(
        etype.toLowerCase(), console.log.bind(console), false
    );
});

Event interface公开的事件类型常量如下(在桌面Safari中):

["MOUSEOUT", "FOCUS", "CHANGE", "MOUSEMOVE",
 "SELECT", "BLUR", "KEYUP",   "MOUSEDOWN", "MOUSEDRAG",
 "MOUSEUP", "MOUSEOVER", "CLICK", "DBLCLICK",
 "KEYDOWN", "KEYPRESS", "DRAGDROP"]