javascript - js - 在不指定元素的情况下模拟按键
问题描述
我想在js中模拟按键。最好不指定任何元素。
我想做的方式是在输入上使用 .focus() 然后模拟像字符“a”这样的按键。
如果我自己按下键会发生同样的事情。
通过互联网搜索我没有找到解决方案。它可能与模拟事件和输入字段的组合有关。有时我可以捕捉到事件,但输入字段中没有输入。
非常感谢您的帮助。
编辑1:这不应该被认为是重复的:是否可以以编程方式模拟按键事件?
因为这并不能解决我的问题。我已经试过了。
编辑2:请不要仅仅因为您不知道如何回答这个问题而对这个问题投反对票。
解决方案
如果您拥有或可以包含 jQuery,这是简单的方法
使用 jQuery
jQuery.event.trigger({ type: 'keydown', which: 78 }); // press n key
要模拟输入字段中的按键事件,请像这样使用
var e = jQuery.Event("keydown");
e.which = 78; // n code value
e.altKey = true; // Alt key pressed
$("#inputBox").trigger(e);
没有 jQuery
var kbEvent= document.createEvent("KeyboardEvent");
var initMethod = typeof kbEvent.initKeyboardEvent !== 'undefined' ? "initKeyboardEvent" : "initKeyEvent";
kbEvent[initMethod](
"keydown", // event type : keydown, keyup, keypress
true, // bubbles
true, // cancelable
window, // viewArg: should be window
false, // ctrlKeyArg
false, // altKeyArg
false, // shiftKeyArg
false, // metaKeyArg
78, // keyCodeArg : unsigned long the virtual key code , else 0
0 // charCodeArgs : unsigned long the Unicode character associated with the depressed key, else 0
);
document.dispatchEvent(kbEvent);
上面的代码实际上不会为你修改输入值,它只会模拟击键
有关更多信息,请参阅这篇文章 如何使用 jQuery 模拟输入字段中的输入?
你需要的是:fn.sendKeys
推荐阅读
- xml - 假设没有可用的 XSD/Schema 文件,分析 XML 文件中的混合内容
- android - 有时 onDeferredAppLinkDataFetched() 返回空的 AppLinkData
- excel - 如何将 VB.net 列表框中的选定项目粘贴到 Excel 工作表?
- php - PHP 启动:无法加载动态库 'sqlsrv_7_ts_x64'
- sql - SQL Server 2008 中缺少触发器
- javascript - 如何在 Vue.js Jest 测试中正确模拟新日期,以便快照不会失败?
- r - 如何在 R 中计算谷歌身份验证器 TOTP 编号?
- c# - 尝试在 Unity 中从 HTC Vive 控制器进行光线投射
- influxdb - 在保留策略生效之前自动备份数据库
- asp.net-core - 将数据添加到具有多对多关系的表中