有人可以帮我解决这个问题。我正在尝试模拟网页的键盘输入,而没有专门指定要将其发送到的控件。我试图通过createEvent和dispatchEvent这样做。但是当我收到实际的keypressed时,事件没有任何对该字符的引用。 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>
答案 0 :(得分:0)
请看看这是否有帮助,我准备了一个简单的小提琴: Basically it triggers a keypress event
你给它角色和要射击的元素:
simulateKeyPress("e", 'body');
它与您的代码不同,它需要定义通过which属性按下的字符。