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

6

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

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

但是现在我需要更好的应用体验,并希望连接至少两个或多个USB或PS / 2键盘,区分键盘事件的来源,以便能够使用JavaScript(和HTML5)在本地使用Web浏览器,就像多人游戏控制台一样同时使用几个控制器。

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

这是否可能或者它是JavaScript的局限性?未来可能会支持同一基本类型的多个输入设备的区分,是否有一些替代方案,至少在HTML5中,或者在Web浏览器、JavaScript和HTML5的上下文中,这将是一个几乎失去希望的问题吗?

1个回答

4

目前,浏览器环境下不能支持特定类型的多个不同输入设备。我也不知道有任何即将发布的规范可以实现这样的功能。通常情况下,认为浏览器一次只有一个用户。我认为不会支持任何类似的功能。

话虽如此,有一项 游戏手柄 支持规范正在开发中。非开发版本的浏览器尚未支持它,但 Firefox 和 Chrome 正在努力开发该功能。如果您对此技术感兴趣,已经有一个有趣的库名为 gamepad.js

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

更新于2015-05-04

Gamepad API 的支持 自本回答以来得到了改善,Firefox 和 Chrome 已经支持多个版本,Opera 也支持。但并非所有浏览器都支持,Safari 和 IE 不支持。微软的新浏览器 Edge 看起来将支持 Gamepad API,但要使大多数 IE 用户迁移到 Edge 或其他浏览器可能需要很长时间。


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