javascript - 如何使用事件模拟完整的用户输入
问题描述
我需要在输入字段中模拟用户输入:
<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
来模拟人类延迟。祝你好运!
推荐阅读
- python - 如何将自定义管理器类参数设置为 required=False
- java - 只有最后一个 StackPane 呈现在屏幕上(JavaFX)
- php - 为什么 Html 到 Wordpress 转换的站点在预加载器处停止?
- sql - 由于子查询错误的别名而导致错误更新的返回记录
- arrays - Excel SUMPRODUCT - 如何处理#VALUE!如果数组包含文本则出错
- python - Django REST 框架分页:未找到:GET /api/blog/list HTTP/1.1" 404 0
- javascript - 如何在 Typescript Push 方法中编写 If Else
- javascript - 同一页面上的多个光滑滑块具有相同的类?
- azure - Azure Cosmos Db 中没有分区键的批量删除
- phpstorm - 如何在 PhpStorm 中运行 dev 到远程服务器