用jQuery自动按键盘?
jQuery是否可以自动模拟键盘上的按键,f.ex。在html输入字段中 作为说明:如果我在输入字段中按a,将在那里显示“a”。我想这样做不是从键盘内部,而是通过按下一个按钮。我知道我可以在输入上使用用jQuery自动按键盘?,jquery,keyboard,Jquery,Keyboard,jQuery是否可以自动模拟键盘上的按键,f.ex。在html输入字段中 作为说明:如果我在输入字段中按a,将在那里显示“a”。我想这样做不是从键盘内部,而是通过按下一个按钮。我知道我可以在输入上使用val(“a”),但这不是我想要实现的 我认为trigger()没有帮助,因为它只调用按键事件的事件处理程序。我不想呼叫处理程序,但要主动按下键盘,而不需要准确地操作 我认为没有javascript API可以直接与键盘交互。我建议将字段值的更改与事件处理程序的触发结合起来,正如您所提到的,事件处理
val(“a”)
,但这不是我想要实现的
我认为
trigger()
没有帮助,因为它只调用按键事件的事件处理程序。我不想呼叫处理程序,但要主动按下键盘,而不需要准确地操作 我认为没有javascript API可以直接与键盘交互。我建议将字段值的更改与事件处理程序的触发结合起来,正如您所提到的,事件处理程序的触发通常与键盘按键相对应,这样字段上的行为会被正常触发。触发器确实有帮助,因为它触发一个事件…这是您对浏览器唯一感兴趣的事情…之前的一切都是操作系统的问题(您无法访问,因为您是在浏览器中构建的…除非您构建一些activeX控件)。因此,这应该是可行的:
var e = $.Event("keypress");
e.which = <some_key_code>;
$("<your_input_selector>").trigger(e);
var e=$.Event(“按键”);
e、 其中=;
$(“”)。触发器(e);
正如您所见,当浏览器注册键盘输入时,会发送按键事件。keypress和keydown的区别在于:“如果用户按住一个键,则会触发一次
keydown
事件,但会为每个插入的字符触发单独的keypress
事件…”。您可以根据您的用例决定使用哪一个
$("inputSelector").trigger($.Event("keypress", { keyCode: 97 }));
传递您想要的任何密钥的密钥代码。否。在Javascript中不可能模拟实际的键盘按键。键盘按键涉及到很多Javascript/浏览器之外的过程
或者,您可以模拟按键事件,但我猜您不想调用按键。在JavaScript中模拟按键(因此jQuery)归结为在需要的地方插入“类型化”字符并启动任何相关处理程序(即使用
触发器
).在我看来,目标似乎不一定是模拟本机浏览器按键事件,而是操纵输入字段内的文本
如果我是对的,您可以获取.prop('selectionStart')
和.prop('selectionEnd')
值,并通过要“按键”的字符覆盖这些索引中的任何字符。您可以通过触发相应的键盘事件来实现这一点
我以前从未做过文本选择。我知道IE处理事情的方式与普通浏览器不同,所以如果你选择走这条路,你需要深入研究这个主题并找到一个跨浏览器的解决方案。为了使事情变得完美,您需要在修改输入值后更改选择属性,就像修改本机粘贴一样。这将是一个相当大的安全漏洞!可能需要ActiveX,但不推荐。您能解释一下为什么需要它吗?也许有更好的方法。恐怕我真的不明白你想做什么。你指的是一个只生成按键的脚本吗。。向某人展示关于在输入字段中编写内容的教程?例如,页面加载->每秒在键盘上键入一个新字母?如果是这样的话,这并不难实现。