3
有没有办法拦截浏览器中的所有UI(触摸/点击等)事件(用于监视/调试等) - 在JavaScript代码和任何chrome工具中 - 都可以。举个例子,我要将某些事件(通过添加一些属性),并抓住它,当它被处理(甚至不止一次)看到堆栈跟踪等拦截浏览器中的所有UI事件
更新:每一个事件寻找拦截,即使不是代码中的某处传播(冒泡/捕获)
有没有办法拦截浏览器中的所有UI(触摸/点击等)事件(用于监视/调试等) - 在JavaScript代码和任何chrome工具中 - 都可以。举个例子,我要将某些事件(通过添加一些属性),并抓住它,当它被处理(甚至不止一次)看到堆栈跟踪等拦截浏览器中的所有UI事件
更新:每一个事件寻找拦截,即使不是代码中的某处传播(冒泡/捕获)
您可以从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"]
什么,如果不传播的特定事件(鼓泡/捕获)中的代码的某处(问题编辑)? – BreakPhreak
@BreakPhreak,那么你可以使用WebInspector。请参阅时间表选项卡,JavaScript和事件面板。它记录所有订阅的事件处理程序。 – katspaugh
只是在这个页面上试了一下(点击上面的点的数字为你的答案) - 看起来像它的作品! :) – BreakPhreak