如何使用Javascript检测用户是否有键盘?

5
我正在构建一个网站,在全局范围内使用keyup事件将某些键绑定到快捷方式。例如,如果有人按A键,菜单就会打开。
我不想在移动设备(如手机和平板电脑)上绑定这些触发器。然而,有许多人使用带有键盘的平板电脑。如何通过Javascript检测键盘输入是否存在?我知道可以根据touchstart是否存在来检测触摸设备,但这对于在平板电脑上使用键盘的人是不起作用的。我只想在键盘存在时绑定keyup事件。如何最好地实现这一点?
注意:我知道这是一个很好的功能,但如果可能的话,我想要实现它。
提前致谢!

1
为什么不在所有情况下绑定到 keyup... 如果用户没有键盘,它将不会执行任何操作。 - Steve
我只是不想绑定不必要的事件。这有多重要或者说无关紧要吗? - srisonti
5
如果只有一个keyup处理程序,那就没什么大不了的。要写的代码来排除该处理程序可能会更加麻烦。 - Steve
知道这个很好,谢谢! :) - srisonti
我认为,手机浏览器通常会模拟键盘事件以兼容现有的脚本。至少我曾经使用过的 Android 设备上是这样的(虽然不完美)。因此,键盘事件的存在并不是一个指标。 - Gas Welder
1个回答

0
你可以始终将一个 catch-all 事件处理程序附加到文档对象上,该处理程序在用户按下任何键后惰性地附加您的事件处理程序。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接