在页面外发布密钥时是否存在KeyUp事件?

时间:2011-02-01 14:29:14

标签: javascript

我目前可以使用依赖KeyDown / KeyUp事件的库来查看使用JavaScript按下了哪些键。虽然在页面内按下/释放按键时可以很好地工作,但是当在页面外部释放按键时(即,当它没有焦点时),事件不会触发。

因此,当页面具有焦点时,可以按Enter键(事件将触发,一切顺利),但当页面没有焦点时释放它时,事件会火,这导致我无法知道该键是否仍被按下。

关于使用的库,请参考: http://www.n-son.com/scripts/keyLib/keyLib.js

当页面没有焦点时,是否可以知道何时释放密钥?或者是否可能有一般功能来检查在特定时间是否按下某个键?

3 个答案:

答案 0 :(得分:3)

当窗口失去焦点时,我会将所有这些键 - 向下标记重置为false,您可以使用window的{​​{1}}事件执行此操作:

blur

答案 1 :(得分:2)

如果他们没有与“您的”程序交互(在网页的情况下,'您的'程序是他们的网络浏览器的一部分),那么他们所做的任何事情都不会产生您的程序知道的事件。

允许网页了解与其无关的事件(例如我在完全独立的程序中键入机密电子邮件,或输入密码或其他任何内容)将是一个巨大的安全风险。

答案 2 :(得分:1)

你不能使用更高级别的事件,例如KeyPress,它可以保证密钥被击落然后被释放吗?