如何使用javascript检测硬件键盘的存在?

use*_*858 12 javascript keyboard

使用javascript检测硬件键盘存在的最佳跨浏览器和跨平台方法是什么?

bmo*_*ate 7

你能尝试相反的理论吗?与其尝试检测键盘硬件,不如尝试检测触摸屏?随着ontouchstart事件;

if ('ontouchstart' in document.documentElement) {
    // show icon
}
Run Code Online (Sandbox Code Playgroud)

  • 如果 PC 有触摸屏? (11认同)
  • 好吧,如果 iPad 上连接了键盘,你会怎么做?显示一个简单的图标听起来像很多代码。 (5认同)

小智 7

这可能是一个古老的问题,但是几个月前,我本人正在寻找解决方案。我正在构建一个消息传递系统,当有人敲击Return其物理键盘时应该发送消息,而当有人敲击Return虚拟键盘时插入一个换行符。我解决问题的方法是计算事件与事件之间的时间keydownkeyup并获得Return击中时间的平均值。

我终于在这里在博客上记录下来

  • 这是一个可靠的解决方案,有一个主要依赖项:用户需要先输入一些内容。圣杯是在用户登陆页面时、在进行任何打字之前可靠地检测用户是否只有软件键盘。 (3认同)
  • 非常聪明,我最终在我自己的应用程序中使用了这个解决方案。谢谢! (2认同)

Ren*_*řík -10

if (confirm('Do you have hardware keyboard?')) {

} else {

}
Run Code Online (Sandbox Code Playgroud)

根据问题评论中的描述进行编辑:

每次都支持“输入”并仅为触摸屏添加“发送”图标(使用 JavaScript 检测“触摸屏”设备的最佳方法是什么?)并作为鼠标的“悬停”伪类怎么样?

  • 谢谢你的笑声,伙计 (34认同)
  • 不,但您可以执行一次并将其存储在 cookie 中。 (4认同)
  • 讽刺的是,这可能是这里最可行的方法 (4认同)
  • 是的,也许不舒服,但我建议您研究一些有关 HTTP cookie 的内容,然后您就会知道 cookie 对于每个浏览器都是唯一的。 (3认同)