Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用jQuery自动按键盘?_Jquery_Keyboard - Fatal编程技术网

用jQuery自动按键盘?

用jQuery自动按键盘?,jquery,keyboard,Jquery,Keyboard,jQuery是否可以自动模拟键盘上的按键,f.ex。在html输入字段中 作为说明:如果我在输入字段中按a,将在那里显示“a”。我想这样做不是从键盘内部,而是通过按下一个按钮。我知道我可以在输入上使用val(“a”),但这不是我想要实现的 我认为trigger()没有帮助,因为它只调用按键事件的事件处理程序。我不想呼叫处理程序,但要主动按下键盘,而不需要准确地操作 我认为没有javascript API可以直接与键盘交互。我建议将字段值的更改与事件处理程序的触发结合起来,正如您所提到的,事件处理

jQuery是否可以自动模拟键盘上的按键,f.ex。在html输入字段中

作为说明:如果我在输入字段中按a,将在那里显示“a”。我想这样做不是从键盘内部,而是通过按下一个按钮。我知道我可以在输入上使用
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,但不推荐。您能解释一下为什么需要它吗?也许有更好的方法。恐怕我真的不明白你想做什么。你指的是一个只生成按键的脚本吗。。向某人展示关于在输入字段中编写内容的教程?例如,页面加载->每秒在键盘上键入一个新字母?如果是这样的话,这并不难实现。