在最近的一个项目中有个场景需要使用到前端模拟键盘事件,但是在傻喵(作者本人)在网上找目前的答案后,大多都是几年前的回答,使用
document.createEvent('KeyEvents')
,然后重新初始化
initKeyEvent
方法,可以参考
掘友的回答
,
傻喵在尝试之后发现编辑器提示该方法已经
废弃
(效果是可以实现的)。翻阅MDN官网并多次尝试后,终于找到了替换。
// 键盘触发方法
keyEvent(key) {
// key 是键盘对应键的code值
var a = new KeyboardEvent("keydown", { detail: 1, view: window });
Object.defineProperty(a, "keyCode", { value: key });
document.dispatchEvent(a);
调用方式传入键盘对应的code值,就可以。
傻喵的使用场景为直接触发,掘友有其他的使用触发场景可以参考回答,封装一下。
当然也可以以此例类推,InputEvent
、MouseEvent
等其他的时间触发。