【发布时间】:2015-02-21 11:35:30
【问题描述】:
场景: 我有一个网络应用程序,我需要在一个中心位置捕获到页面的所有键控输入。我的第一个解决方案是不断地将焦点放在文本框上,以便所有焦点都通过那里。这对于桌面浏览器非常有效,但会导致移动浏览器上的软键盘始终可见的不良影响。由于我的键控输入来自外部源,因此我不希望键盘在我请求之前可见。由于没有直接的方法(我发现)可以做到这一点,我试图将持续的焦点放在不会导致键盘显示的控件上。我找不到不会导致键盘显示但会触发其中一个键事件(keydown/keyup/keypress)的控件。
有没有人建议我如何在不显示软键盘的情况下捕捉所有按键输入?
注意:如有必要,我可以为台式机和移动设备提供不同的解决方案。
感谢任何帮助!
【问题讨论】:
-
当您说来自“外部来源”时,您是什么意思?您是否尝试过捕获不需要焦点输入的 window.keydown 事件?
-
我的建议是有一个键盘图标,当点击它时,会将焦点带到(可能是隐藏的)文本框上,而不是始终保持焦点(至少在检测到移动浏览器时)跨度>
-
@JesseKernaghan 外部输入是连接或配对到将发送输入的移动设备的任何物理设备。通常它会使用键盘楔(虚拟键盘驱动程序)。
-
@JonathanGray 我可以随时显示键盘,这很容易。我需要一种在不显示键盘的情况下接收输入的方法,而当文本框有焦点时我不能这样做。我需要一些东西来接收不会提示键盘显示的输入。
标签: javascript angularjs html