有没有办法监听到在浏览器控制台Console面板触发的键盘事件?

一般在浏览器端,我们可以通过如下方式监听到键盘事件:

window.addEventListener('keydown', e => {
  console.log(e);
})

这种方式有一个前提:鼠标焦点在当前页面上。当打开浏览器控制台Console面板,且鼠标焦点在Console面板上时,此时的键盘事件是没法通过上面的方式监听到的,即,此时我们可以在控制台任意输入内容,而不会触发keydown事件。

问题:那么,有没有一种方法或者技巧,可以监听到在浏览器控制台的键盘输入事件,甚至阻止、拦截、代理在浏览器控制台的默认输入行为。

如下图,比如我现在光标在2的后面,我按了一下键盘左键,默认情况下,光标会跑到1和2之间,但是我不想要这一默认行为,而是要能监听到和自定义左键的这一行为。
image.png

阅读 4.1k
1 个回答

可以改写 window.console 方法,实现监听所有经过 console 的数据。需要对开发环境额外处理,不然容易拦截后不好定位 console 位置,会大大降低开发效率。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题