如何用事件模拟完整的用户输入
How to simulate complete user input with events
我需要在输入字段中模拟用户输入:
<input type="text" id="name">
应手动触发以下事件:
mousedown > focus > mouseup > click > keydown > keypress > change >
blur
代码显示在这里
如果我使用此代码,它们应该会被检测到:
var element = document.getElementById('name');
$(element).on('mousedown focus mouseup click keydown keypress change blur', function(e){
console.log(e);
});
更新文件(未检测到,没有控制台日志..):
$("#name").trigger("mousedown");
$("#name").trigger("focus");
$("#name").trigger("mouseup");
$("#name").trigger("click");
$("#name").trigger("keydown");
$("#name").trigger("keypress");
$("#name").trigger("change");
$("#name").trigger("blur");
var element = document.getElementById('name');
$(element).on('mousedown focus mouseup click keydown keypress change blur', function(e){
console.log(e);
});
您将为此使用 jQuery 的 trigger
。所以,如果你想按照你描述的顺序模拟事件:
$("#name").trigger("mousedown");
$("#name").trigger("focus");
$("#name").trigger("mouseup");
$("#name").trigger("click");
$("#name").trigger("keydown");
$("#name").trigger("keypress");
$("#name").trigger("change");
$("#name").trigger("blur");
如果你想真正模拟用户,你也可以使用一些 setTimeout
来模拟人为延迟。祝你好运!
您可以使用触发器 jquery 函数来模拟和触发任何事件。
试试这个 --
添加Jquery插件
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
<input type="text" id="name">
//var element = document.getElementById('name');
$("input").trigger("mousedown");
$("input").trigger("focus");
$("input").trigger("mouseup");
$("input").trigger("click");
$("input").trigger("keydown");
$("input").trigger("keypress");
$("input").trigger("change");
$("input").trigger("blur");
我需要在输入字段中模拟用户输入:
<input type="text" id="name">
应手动触发以下事件:
mousedown > focus > mouseup > click > keydown > keypress > change > blur
代码显示在这里
如果我使用此代码,它们应该会被检测到:
var element = document.getElementById('name');
$(element).on('mousedown focus mouseup click keydown keypress change blur', function(e){
console.log(e);
});
更新文件(未检测到,没有控制台日志..):
$("#name").trigger("mousedown");
$("#name").trigger("focus");
$("#name").trigger("mouseup");
$("#name").trigger("click");
$("#name").trigger("keydown");
$("#name").trigger("keypress");
$("#name").trigger("change");
$("#name").trigger("blur");
var element = document.getElementById('name');
$(element).on('mousedown focus mouseup click keydown keypress change blur', function(e){
console.log(e);
});
您将为此使用 jQuery 的 trigger
。所以,如果你想按照你描述的顺序模拟事件:
$("#name").trigger("mousedown");
$("#name").trigger("focus");
$("#name").trigger("mouseup");
$("#name").trigger("click");
$("#name").trigger("keydown");
$("#name").trigger("keypress");
$("#name").trigger("change");
$("#name").trigger("blur");
如果你想真正模拟用户,你也可以使用一些 setTimeout
来模拟人为延迟。祝你好运!
您可以使用触发器 jquery 函数来模拟和触发任何事件。
试试这个 --
添加Jquery插件
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
<input type="text" id="name">
//var element = document.getElementById('name');
$("input").trigger("mousedown");
$("input").trigger("focus");
$("input").trigger("mouseup");
$("input").trigger("click");
$("input").trigger("keydown");
$("input").trigger("keypress");
$("input").trigger("change");
$("input").trigger("blur");