initKeyEvent按键仅适用于FireFox.需要跨浏览器解决方案!

Pac*_*ier 5 html javascript web

这是我的代码:

<script>
function f(){
var i=document.getElementById("i");
i.focus();
 var evt = document.createEvent("KeyboardEvent");
    evt.initKeyEvent("keypress", true, true, null, false, false, false, false, 

0, 32);
    i.dispatchEvent(evt);
}
</script>
<body onload="f();">
<input id="i"/>
</body>
Run Code Online (Sandbox Code Playgroud)

在Firefox中打开脚本,它正在运行.输入框中的空白区域显示代码已生效.

但是上面的代码在Chrome,Safari,Opera等中不起作用.

我们如何修改上面的代码以使其在这些浏览器中工作?

Ale*_*lov 6

对于基于Webkit的浏览器(Safari/Chrome),事件初始化调用应该看起来有点不同(请参阅https://bugs.webkit.org/show_bug.cgi?id=13368):

initKeyboardEvent(in DOMString typeArg, 
                  in boolean canBubbleArg, 
                  in boolean cancelableArg, 
                  in views::AbstractView viewArg, 
                  in DOMString keyIdentifierArg, 
                  in unsigned long keyLocationArg, 
                  in boolean ctrlKeyArg, 
                  in boolean shiftKeyArg, 
                  in boolean altKeyArg, 
                  in boolean metaKeyArg, 
                  in boolean altGraphKeyArg);
Run Code Online (Sandbox Code Playgroud)