Jquery/Javascript代码模拟键入在谷歌chrome控制台的文本字段

Jquery/Javascript code to simulate key typing in a text field in google chrome console

本文关键字:chrome 谷歌 控制台 字段 文本 Javascript 代码 模拟 Jquery      更新时间:2023-09-26

我有一个带有自动完成扩展程序的输入框。我想用jquery或javascript模拟按键。按下键应该会打开自动补全弹出窗口。

我搜索模拟使用jquery按键,并提出了这些答案:1)用jQuery模拟按键2)从Javascript控制台模拟按键事件3) JQuery模拟输入字段

上的按键事件

所有这些都允许我一次只模拟一个键。但如果我想允许批处理键事件呢?例如,我想在一行代码中直接键入"abcde"文本,而不必键入每个字符的键代码。

编辑:

我正在尝试使用谷歌chrome控制台模拟按键。没有一个答案对我有用:(

是否可以通过jquery/javascript或其他库?

这段代码模拟在输入框中输入:

var txt = "Lorem ipsum dolor";
var timeOut;
var txtLen = txt.length;
var char = 0;
var tb = $("#tb").attr("value", "|");
(function typeIt() {
    var humanize = Math.round(Math.random() * (200 - 30)) + 30;
    timeOut = setTimeout(function () {
        char++;
        var type = txt.substring(0, char);
        tb.attr("value", type + '|');
        typeIt();
        if (char == txtLen) {
            tb.attr("value", tb.attr("value").slice(0, -1))
            clearTimeout(timeOut);
        }
    }, humanize);
}());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="text" id="tb">

根据我的理解,您正在寻找一种不处理每次按键自动完成的方法,并希望允许用户添加适当的单词然后处理它。

解决方案
    在textbook上添加一个keydown事件。
  1. 创建一个SetInterval,一旦达到阈值时间将触发事件。
  2. 重置每次按键的时间间隔,以确保阈值时间保持不变,无论查询时间有多长。
  3. 清除一次自动完成处理的间隔,这样你就不会每秒钟都击中功能。

下面是描述相同内容的JSFiddle

代码

var interval = 0;
var callInterval = null;
function registerEvents(){
	$("#txtField").on("keydown", function(e){
    	var keyCode = e.keyCode ? e.keyCode : e.which;
        console.log(keyCode);
        if(!callInterval){ 
            intervalInit();
        }
        else{
        	resetInterval();
        }
    });
}
function intervalInit(){
	interval = 0;
    callInterval = setInterval(function(){
    	interval++;
        if(interval >=1){
        	fetchAutoCompleteData($("#txtField").val());
            window.clearInterval(callInterval);
            callInterval = null;
        }
    },1000);
}
function resetInterval(){
    window.clearInterval(callInterval);
    intervalInit()
}
function fetchAutoCompleteData(data){
	console.log("Data: ", data)
}
(function(){
	registerEvents();
})()
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<input type="text" id="txtField"/>