3

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

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

4

1 回答 1

3

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

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

Event接口暴露的事件类型常量如下(在桌面 Safari 中):

["MOUSEOUT", "FOCUS", "CHANGE", "MOUSEMOVE",
 "SELECT", "BLUR", "KEYUP",   "MOUSEDOWN", "MOUSEDRAG",
 "MOUSEUP", "MOUSEOVER", "CLICK", "DBLCLICK",
 "KEYDOWN", "KEYPRESS", "DRAGDROP"]
于 2012-11-22T15:42:25.077 回答