找出哪个键盘在javascript中生成了一个关键事件

问题描述 投票:1回答:2

有没有办法确定连接到设备的哪个键盘在JS中发送了特定的键事件?例如,带有USB键盘的笔记本电脑将很高兴地尊重两个键盘上的按键,但我似乎无法找到一种方法让浏览器告诉我关键事件来自哪个源,所以我可以根据它进行过滤(例如对于播放器1 /基于浏览器的游戏的2输入过滤,基于浏览器的组合工具的键盘与“虚拟乐器”等。

我在MDN的关键事件规范中找不到任何暗示这是可能的,但我会非常乐意接受任何创造性的黑客,使这项工作“尽管”而非“感谢”规范。

有人did ask this question back in 2013,虽然它的回答建议使用游戏手柄API作为解决方法,但它现在是2018年,对JS API进行了三年的更改意味着这个问题值得重新研究,以便根据浏览器的当前状态得到答案。

javascript keyevent
2个回答
1
投票

我不知道它是否已经可行,但如果尝试这样的话,我会研究WebUSB Api:

https://developers.google.com/web/updates/2016/03/access-usb-devices-on-the-web https://wicg.github.io/webusb/

不是那么容易,但似乎有可能


1
投票

目前还不可能。

WebUSB不允许访问HID设备,WebHID将不允许访问高级API已经支持的设备(包括键盘)。

我在WICG孵化器上开始了一个话题:https://discourse.wicg.io/t/identify-which-of-multiple-keyboards-an-event-came-from/3416

© www.soinside.com 2019 - 2024. All rights reserved.