Tôi có một trang mà tôi cần chụp đầu vào từ người dùng sau khi họ nhấp vào một phần của trang (div). Dưới đây là mã của tôi:event.charCode luôn trả về 0
<html>
<body>
<div style="background-color: lightpink" onkeydown="onkeydown1(event)" tabindex="-1">
click me, then press a key
</div>
<script type="text/javascript">
function onkeydown1(event)
{
alert(event.charCode);
}
</script>
</body>
</html>
Nhìn thấy nó trong hành động: "có trọng tâm" http://jsfiddle.net/WRwBF/
Tôi đã mất nhiều thời gian nhất để có được điều này xa vì FireFox không theo mặc định cho phép một div để Cuối cùng tôi phát hiện ra rằng thiết lập các tabindex cho div cho phép nó được tập trung và sự kiện onkeydown hoạt động.
Vấn đề của tôi bây giờ là khi tôi bấm vào div và nhấn một phím, giá trị "0" được trả về bất kể phím nào được nhấn. Tại sao điều này lại xảy ra và tôi có thể sửa nó như thế nào?
Tôi rất cảm kích mọi hướng dẫn mà bạn có thể cung cấp!
Phiên bản ngắn gọn là: [trình duyệt bị câm] (http://www.quirksmode.org/js/keys.html). Bài viết QuirksMode đó sẽ giải thích mọi thứ. Về cơ bản, để có được 'charCode' một cách hợp lý, bạn cần phát hiện sự kiện' keyPress' và thử 'evt.charCode || evt.keyCode' – millimoose