2017-06-26 70 views
0

我已经创建了一个以编程方式发送KEYDOWN事件的函数。不能插入模拟键盘按键事件的文本

如果我打开开发人员控制台,可以看到事件已成功发送。 我使用该功能捕捉事件:

document.addEventListener ('keydown', function() { 
    console.log (JSON.stringify (event.keyCode)) 
}, false); 

但如果我点击输入文本字段和编程方式发送的键值(例如)字母“W”的,信中并没有出现在它。

我在做什么错?

这是函数编程调度事件:

function sendKeyDownEvent (keyCode) { 
     var e = new Event ("keydown"); 
     e.keyCode = keyCode; 
     e.which = e.keyCode; 
     e.altKey = false; 
     e.ctrlKey = true; 
     e.shiftKey = false; 
     e.metaKey = false; 
     e.bubbles = true; 
     document.dispatchEvent (e); 
} 
+0

貌似HTTPS的副本中的变量事件://stackoverflow.com/questions/10455626/keydown-simulation-in-chrome-fires-normally-but-not-the-correct-key – mplungjan

回答

0
document.addEventListener ('keydown', function (event) { // pass the event 
console.log (JSON.stringify (event.keyCode)) 
}, false); 

您需要获得访问事件,因此包括函数头

+0

_If我打开开发者控制台,我可以看到事件被成功调度_ - window.event可用于许多浏览器,无需特别指定传递给函数 – mplungjan

+0

@mplungjan我可以打印event.keyCode。我的问题是,我派遣的事件不会在输入文本字段中写入字母。我发送键码89(字母W),我希望它被写入文本输入字段。但没有发生。 – Jacob