在JavaScript / Web浏览器中捕获2个或更多键盘的事件

alt*_*126 5 javascript keyboard-events

我正在编写一些执行简单键盘事件捕获的测试应用程序。

我对这种基本方法没有任何疑问。

但是,现在我需要对我的应用程序有更好的体验,并且我想连接至少两个或多个USB或PS / 2键盘,区分哪个键盘是按键事件的来源,以便能够通过JavaScript在本地使用Web浏览器(和HTML5),就好像它是同时具有多个控制器的游戏控制台。

我知道即使在Windows或Linux下,正常的行为是使多个键盘触发相同的事件。但是,我也知道,完全有可能知道触发该事件的特定键盘硬件设备。

JavaScript是否可能或有限制?将来可能会支持同一基本类型的多个输入设备的区别,是否有其他选择(至少使用HTML5),或者在使用Web浏览器JavaScript的情况下几乎失去了希望和HTML5?

Use*_*ode 4

不,在当前的浏览器环境中,您无法支持特定类型的多个不同输入设备。我也不知道任何即将推出的规范可以实现类似的功能。通常,假设浏览器一次只有一个用户。我认为这样的事情不会得到支持。

也就是说,目前正在开发游戏手柄支持的规范。非开发版本的浏览器尚不支持它,但 Firefox 和 Chrome 都在努力支持它。如果您对这项技术感兴趣,已经有一个名为gamepad.js 的有趣库。

目前,要支持多个玩家,您可能必须像大多数游戏那样支持多个基于键盘的玩家,将每个玩家映射到不同的按键组。

更新2015-05-04

自这个答案以来,对 Gamepad API 的支持已经变得更好,Firefox 和 Chrome 现在都支持回溯多个版本,Opera 也支持它。但并非所有浏览器都这样做,Safari 和 IE 都没有。微软的新浏览器 Edge 看起来将支持 Gamepad API,但可能需要很长时间才能让大多数 IE 用户迁移到 Edge 或其他浏览器。