Tôi đang cố gắng đặt keyCode trên đối tượng sự kiện được gửi đi.Bàn phímEvent trong Chrome, mã phím là 0
Khi nhấp vào nút, sự kiện được nâng lên trên điều khiển hộp văn bản để mô phỏng sự kiện keydown. Sự kiện được nâng lên thành công, nhưng keyCode là 0. Tôi cần gửi đối tượng sự kiện với mã khóa chính xác tới hộp văn bản. Tôi đã sử dụng mã từ here.
Cách đặt giá trị keyCode trong sự kiện được gửi đi?
<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>
Có một công việc rất thông minh cho việc này, vui lòng xem: http://stackoverflow.com/questions/10455626/keydown-simulation-in-chrome-fires-normally-but-not-the-correct-key/10520017 # 10520017 Điều này sẽ cho phép bạn thiết lập các thuộc tính bạn cần, và gửi một sự kiện keyup/down. Mã mẫu được bao gồm. – Orwellophile