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

时间:2013-02-19 14:33:31

标签: javascript keyboard-events

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

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

但现在我需要更好的应用程序体验,我想连接至少两个或更多USB或PS / 2键盘,区分键盘是关键事件的来源,因此能够使用带有JavaScript(和HTML5)的本地Web浏览器,就好像它是一个游戏控制台,同时为多个玩家提供多个控制器。

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

是否可能或是JavaScript的限制?未来可能会支持支持相同基本类型的多个输入设备的区别,是否有一些替代方案,至少使用HTML5,或者它几乎失去了希望,在Web浏览器的上下文中谈论,JavaScript和HTML5?

1 个答案:

答案 0 :(得分:3)

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

尽管如此,目前正在制定gamepad支持的规范。非开发版浏览器不支持它,但Firefox和Chrome都在开发它。如果您对此技术感兴趣,已经有一个名为gamepad.js的有趣库。

目前,为了支持多个玩家,您可能需要执行大多数游戏所做的操作来支持多个基于键盘的玩家,将每个玩家映射到不同的按键群。

更新2015-05-04

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