javascript - 无焦点按键检测

标签 javascript google-chrome internet-explorer firefox web

快速提问:

在网站上,有什么方法可以在浏览器最小化时检测何时按下键盘按键?或者当您将焦点放在另一个窗口上时?

例如,您在 Chrome 上打开我的网站,然后切换到 Spotify,例如,我需要检测用户是否按下了他之前绑定(bind)的特定键。

我可以想象这对于 javascript 来说是不可能的,因为你没有关注浏览器,但是,有什么办法吗?也许制作一个 chrome 扩展?用Java?银光?

我只需要检测用户按下的键,没有别的。

谢谢!

编辑:

我的用户已经在他们的计算机上安装了 C# 应用程序,我(也许)可以检测应用程序中的按键并以任何方式调用浏览器(已打开)吗?

最佳答案

这是不可能的,尽管它应该是。

为什么不可能的动机是完全合理的。毫无疑问,不受信任的网页不应该能够监视键盘事件,因为这将允许恶意网页监视 secret 事件。

但是,也有完全合法的用例可以做到这一点。一个很好的例子是语音通信 Web 应用程序。对于这样的应用程序来说,检测何时按下特定按键、提供一键通和其他按键绑定(bind)将很有用。但这目前是不可能的。事实上,Discord Web 应用程序必须要求用户下载该应用程序的桌面版本才能有效使用一键通。

合理的解决方案是允许 Web 应用程序请求用户许可,以在失焦时监视所有或部分键盘事件。这就是位置、摄像头和其他敏感权限的工作原理。默认情况下,网页没有该权限,因此对于不可信的网页可以保证安全。这对于网络来说是一个重要的改进,因为它寻求扩展其与桌面和移动环境的相关性。

关于javascript - 无焦点按键检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37377066/

相关文章:

css - IE CSS 覆盖帮助

javascript - 在 IE 11 中加载 block 失败

javascript - 移动设备隐式流上的静默刷新 token

javascript - 伊诺特 : no such file or directory

javascript - 每次重新加载后,Node.js Web 应用程序 chrome 内存使用量都会增加

javascript - 如何在浏览器中本地执行 .js 文件?

javascript - Jquery 调用更改事件的操作,然后以 div 形式反射(reflect)该值

Javascript: object1 = object2 究竟产生了什么?

javascript - 如何通过程序自动从目录生成chrome扩展?

html - 背景图片在 IE7 上不显示