【问题标题】:Capture the events of 2 or more keyboards in JavaScript/Web Browser在 JavaScript/Web 浏览器中捕获 2 个或更多键盘的事件
【发布时间】:2015-05-05 05:24:53
【问题描述】:

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

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

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

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

这是可能的还是 JavaScript 的限制?将来可能会支持区分相同基本类型的多个输入设备,是否有一些替代方案,至少在 HTML5 中,还是几乎失去希望,在 Web 浏览器的上下文中讨论,JavaScript和 HTML5?

【问题讨论】:

    标签: javascript keyboard-events


    【解决方案1】:

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

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

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

    2015-05-04 更新

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

    【讨论】:

      猜你喜欢
      • 2011-08-21
      • 2012-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-20
      • 1970-01-01
      相关资源
      最近更新 更多