0

有人可以帮我处理这段代码。我正在尝试模拟网页的键盘输入,而没有专门指定将其发送到的控件。我正在尝试通过 createEvent 和 dispatchEvent 来实现。但是当我收到实际的按键事件时,该事件没有对角色的任何引用。charCode、keyCode 等始终为 0。

谢谢你的帮助!最大限度

<html>
<body> 
    <button type="button" onclick="KeyPressInject('e')">TEST</button>
</body>

<script type="text/javascript">

addEventListener("keypress", function(event){ EventKeyPressed(event)}); 

function KeyPressInject(letter)
{
    var evt = document.createEvent("KeyboardEvent");
    Object.defineProperty(evt, 'keyCode', { 
                         get : function() {
                                 return this.keyCodeVal;
                         } });      
    evt.initKeyboardEvent ("keypress", true, false, window, false, false, false, false, letter, letter); 
    var canc = !window.dispatchEvent(evt);
}

function EventKeyPressed(event)
{
    console.log("Key Pressed " + event.charCode);
}   
</script>
</html>
4

1 回答 1

0

请看看这是否有帮助,我准备了一个简单的小提琴: 基本上它会触发按键事件

你给它角色和元素来触发:

simulateKeyPress("e", 'body');

它与您的代码不同,它需要定义通过 which 属性按下的字符。

于 2014-03-08T20:49:17.823 回答