問題描述
我正在使用以下代碼來跟蹤關鍵事件
Im using foloowing code to track key events
oEvent=window.event || oEvent;
iKeyCode=oEvent.keyCode || oEvent.which;alert(iKeyCode);
它在 Firefox 中給我警報,但在 IE 和 chrome 中沒有.它給了我所有其他鍵盤字符,但沒有 esc 鍵和箭頭鍵.
its giving me alerts in firefox but not in IE and chrome. Its giving me all the other keyborad characters but not esc key and arrow keys.
如何使用 javascript 檢測 chrome 和 IE 中的 esc 鍵和箭頭鍵??
How can i detect esc key and arrow keys in chrome and IE using javascript??
推薦答案
你并不真正需要 JQuery,盡管它確實使你的代碼更短.
You don't really need JQuery, though it does make your code shorter.
您必須使用 keyDown 事件,keyPress 在舊版本的 IE 中無法用于箭頭鍵.
You will have to use the keyDown event, keyPress will not work in old versions of IE for the arrow keys.
這里有一個完整的教程可供您使用,請參閱頁面底部附近帶有箭頭鍵的示例:http://www.cryer.co.uk/resources/javascript/script20_respond_to_keypress.htm
There is a full tutorial here that you can use, see the example with arrow keys close to the bottom of the page: http://www.cryer.co.uk/resources/javascript/script20_respond_to_keypress.htm
這是我使用的一些代碼,因為我必須通過緩沖來處理重復的按鍵操作,所以有點簡化:
Here's some code I used, a bit simplified since I had to handle repeated keypresses with buffering:
document.onkeydown = function(event) {
if (!event)
event = window.event;
var code = event.keyCode;
if (event.charCode && code == 0)
code = event.charCode;
switch(code) {
case 37:
// Key left.
break;
case 38:
// Key up.
break;
case 39:
// Key right.
break;
case 40:
// Key down.
break;
}
event.preventDefault();
};
這篇關于如何在 Chrome 和 IE 中跟蹤箭頭鍵?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!