Javascript 使用'which'属性以编程方式触发keydown事件

Javascript 使用'which'属性以编程方式触发keydown事件,javascript,google-chrome,dom-events,keydown,onkeydown,Javascript,Google Chrome,Dom Events,Keydown,Onkeydown,我如何通过编程方式触发Chrome上的按键事件,该事件将哪个属性设置为所需的值 尝试 但是,当在输入的onKeyDown处理程序中接收属性时,事件具有which、charCode和keyCode等于0键在Chrome中被正确设置为a,这些事件属性的默认值为0,并且不可写(因为它们已被弃用)。您必须删除本机属性,然后重新创建它们: var ke=新键盘事件('keydown'{ '键':“a”, “代码”:“KeyA”, }); //删除默认值为0的本机事件只读属性 删除ke.keyCode;

我如何通过编程方式触发Chrome上的按键事件,该事件将
哪个属性设置为所需的值

尝试


但是,当在输入的
onKeyDown
处理程序中接收属性时,事件具有
which、charCode和keyCode
等于
0
<代码>键
在Chrome中被正确设置为
a

,这些事件属性的默认值为
0
,并且不可写(因为它们已被弃用)。您必须删除本机属性,然后重新创建它们:

var ke=新键盘事件('keydown'{
'键':“a”,
“代码”:“KeyA”,
});
//删除默认值为0的本机事件只读属性
删除ke.keyCode;
删除ke.charCode;
删除ke.which;
//创建读/写的新自定义属性:
Object.defineProperty(ke,“keyCode”,{“value”:65});
Object.defineProperty(ke,“charCode”,“value”:65});
defineProperty(ke,“which”,{“value”:65});
var el=document.getElementById(“键”);
el.addEventListener(“向下键控”,功能(evt){
log(evt.key,evt.code,evt.keyCode,evt.charCode,evt.which);
});
el.调度事件(ke)

完整的代码是什么?为什么需要这样做?如果用
65
键触发了实际的
keydown
事件,您就不能调用将要运行的代码吗?考虑到
keyCode
KeyboardEvent
构造函数的一部分,这对我来说似乎是一个浏览器错误。
new KeyboardEvent('keydown', {
    'which':65,
    'charCode':65,
    'keyCode':65,
    'key':"a",
    'code':"KeyA",
});