繁体   English   中英

如何用Javascript在输入框模拟打字?

[英]How to Simulate Typing in an Input Box with Javascript?

我想要做的是让输入框认为我正在向其中输入数字,而不是更改所述输入的值。 所以我做的第一件事就是让输入框成为一个变量:

var input = document.querySelectorAll("input")[1];

然后我所做的就是聚焦输入框,让它看起来像是我用鼠标点击了它:

input.select();

这是我现在坚持的部分。 我想做的是让输入框认为我输入了一个数字,比如 41。如果有人能告诉我我需要在控制台中输入什么代码才能让输入框认为我输入了“41” , 这将不胜感激。 谢谢你。

您可以使用setTimeout并每次添加一个字符,如下所示:

 var input = document.querySelectorAll("input")[1]; input.select(); // you can also use input.focus() input.value=""; var text = "41"; var l=text.length; var current = 0; var time = 1000; var write_text = function() { input.value+=text[current]; if(current < l-1) { current++; setTimeout(function(){write_text()},time); } else { input.setAttribute('value',input.value); } } setTimeout(function(){write_text()},time);
 <input type="text"> <input type="text">

这将适用于您想要编写的任何内容,您只需根据需要调整变量即可。

我知道这真的是很久以前的事了,但我目前正在处理一个非常相似的问题并且遇到了与原始海报完全相同的问题,我发现了这个代码片段( 信用):

element.dispatchEvent(new KeyboardEvent("keydown", {
    key: "e",
    keyCode: 69,        // example values.
    code: "KeyE",       // put everything you need in this object.
    which: 69,
    shiftKey: false,    // you don't need to include values
    ctrlKey: false,     // if you aren't going to use them.
    metaKey: false      // these are here for example's sake.
}));

您可以在此处找到您需要的特定密钥代码。

这绝对是一种极其复杂的做事方式,您需要一些东西将您拥有的任何输入字符串转换为 KeyboardEvent 实例列表,然后一个一个地发送它们,但据我所知这是正确的真正“模拟”键盘输入的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM