And*_*ija 27 javascript google-chrome keydown keyboard-events
我试图在调度的事件对象上设置keyCode.
单击按钮时,会在文本框控件上引发事件以模拟keydown事件.事件成功引发,但keyCode为0.我需要将具有正确keyCode的事件对象发送到文本框.我一直在使用这里的代码.
如何在调度事件中设置keyCode值?
<html>
<head>
</head>
<body>
<input type="button" id="btn" value="Click"></input>
<input type="text" id="txt"></input>
<script>
document.getElementById('btn').addEventListener("click", btnClick);
document.getElementById('txt').addEventListener("keydown", txtKeydown);
function btnClick(e) {
var txt = document.getElementById('txt');
var dispatchKeyboardEvent = function(target, initKeyboradEvent_args) {
var e = document.createEvent("KeyboardEvents");
e.initKeyboardEvent.apply(e, Array.prototype.slice.call(arguments, 1));
e.keyCode = 83;
e.charCode = 0;
target.dispatchEvent(e);
};
var canceled = !dispatchKeyboardEvent(txt,
'keydown', true, true, // type, bubbles, cancelable
window, // window
's', // key
0, // location: 0=standard, 1=left, 2=right, 3=numpad, 4=mobile, 5=joystick
false, false, false); // Ctr, Alt, Shift
}
function txtKeydown(e) {
console.dir(e);
console.log(e.keyCode);
}
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
Phi*_*nyy 36
我很惊讶这个虫子已经存在了很长时间.似乎有使用通用事件的解决方法.这是一个演示:http://jsbin.com/awenaq/3
| 归档时间: |
|
| 查看次数: |
34388 次 |
| 最近记录: |