如何在IE8中生成具有特定键码的键盘事件?

ktu*_*nio 6 javascript dom keyboard-events internet-explorer-8 dom-events

我需要使用本机DOM函数(没有jQuery)在IE 8中生成keyup事件.以下代码生成,触发并接收事件,但keyCode始终为0.如何正确传递keyCode?

<form><input id="me" type="submit" /></form>

<script type="text/javascript">
var me = document.getElementById("me");
me.attachEvent("onkeyup", function(e) {
  alert(e.keyCode); // => 0
});

document.getElementById("me").fireEvent('onkeyup', 13);
</script>
Run Code Online (Sandbox Code Playgroud)

ktu*_*nio 11

弄清楚了.解决方案是创建一个事件对象,分配密钥代码,然后从节点中激活它.

var e = document.createEventObject("KeyboardEvent");
e.keyCode = keyCode;

node.fireEvent("onkeyup", e);
Run Code Online (Sandbox Code Playgroud)

  • 太棒了,谢谢分享你的sol'n.作为参考,在jQuery中它将相当于:`e = jQuery.Event("keyup"); e.keyCode = 13; $(节点).trigger(E);` (6认同)