2011-04-15 117 views
2

在Firefox 3.6和4.0中,我可以將KeyboardEventkeyCode與存儲在全局KeyEvent對象(這是DOM3規範的一部分)內的密鑰的預定義常量進行比較。 KeyEvent不是Chrome 10.0中的全局對象。有什麼方法可以在Chrome 10.0中使用預定義的鍵常量訪問對象?這是甚至實施?Chrome 10:KeyEvent或類似Firefox的KeyEvent

例子:

// This works in firefox 3/4. 
// How do I do this in chrome? 
if (event.keyCode === KeyEvent.DOM_VK_RETURN) { 
    // Do stuff... 
} else if (event.keyCode === KeyEvent.DOM_VK_ESCAPE) { 
    // Do something else. 
} 

是的,我知道的是,輸入/返回鍵碼是13和退出鍵碼是27.

回答

1

瀏覽器本身不就帶着這是我知道,但你可以否則定義它:

if (typeof KeyEvent == "undefined") { 
    var KeyEvent = { 
     DOM_VK_CANCEL: 3, 
     DOM_VK_HELP: 6, 
     DOM_VK_BACK_SPACE: 8, 
     DOM_VK_TAB: 9, 
     DOM_VK_CLEAR: 12, 
     DOM_VK_RETURN: 13, 
     DOM_VK_ENTER: 14, 
     DOM_VK_SHIFT: 16, 
     DOM_VK_CONTROL: 17, 
     DOM_VK_ALT: 18, 
     DOM_VK_PAUSE: 19, 
     DOM_VK_CAPS_LOCK: 20, 
     DOM_VK_ESCAPE: 27, 
     DOM_VK_SPACE: 32, 
     DOM_VK_PAGE_UP: 33, 
     DOM_VK_PAGE_DOWN: 34, 
     DOM_VK_END: 35, 
     DOM_VK_HOME: 36, 
     DOM_VK_LEFT: 37, 
     DOM_VK_UP: 38, 
     DOM_VK_RIGHT: 39, 
     DOM_VK_DOWN: 40, 
     DOM_VK_PRINTSCREEN: 44, 
     DOM_VK_INSERT: 45, 
     DOM_VK_DELETE: 46, 
     DOM_VK_0: 48, 
     DOM_VK_1: 49, 
     DOM_VK_2: 50, 
     DOM_VK_3: 51, 
     DOM_VK_4: 52, 
     DOM_VK_5: 53, 
     DOM_VK_6: 54, 
     DOM_VK_7: 55, 
     DOM_VK_8: 56, 
     DOM_VK_9: 57, 
     DOM_VK_SEMICOLON: 59, 
     DOM_VK_EQUALS: 61, 
     DOM_VK_A: 65, 
     DOM_VK_B: 66, 
     DOM_VK_C: 67, 
     DOM_VK_D: 68, 
     DOM_VK_E: 69, 
     DOM_VK_F: 70, 
     DOM_VK_G: 71, 
     DOM_VK_H: 72, 
     DOM_VK_I: 73, 
     DOM_VK_J: 74, 
     DOM_VK_K: 75, 
     DOM_VK_L: 76, 
     DOM_VK_M: 77, 
     DOM_VK_N: 78, 
     DOM_VK_O: 79, 
     DOM_VK_P: 80, 
     DOM_VK_Q: 81, 
     DOM_VK_R: 82, 
     DOM_VK_S: 83, 
     DOM_VK_T: 84, 
     DOM_VK_U: 85, 
     DOM_VK_V: 86, 
     DOM_VK_W: 87, 
     DOM_VK_X: 88, 
     DOM_VK_Y: 89, 
     DOM_VK_Z: 90, 
     DOM_VK_CONTEXT_MENU: 93, 
     DOM_VK_NUMPAD0: 96, 
     DOM_VK_NUMPAD1: 97, 
     DOM_VK_NUMPAD2: 98, 
     DOM_VK_NUMPAD3: 99, 
     DOM_VK_NUMPAD4: 100, 
     DOM_VK_NUMPAD5: 101, 
     DOM_VK_NUMPAD6: 102, 
     DOM_VK_NUMPAD7: 103, 
     DOM_VK_NUMPAD8: 104, 
     DOM_VK_NUMPAD9: 105, 
     DOM_VK_MULTIPLY: 106, 
     DOM_VK_ADD: 107, 
     DOM_VK_SEPARATOR: 108, 
     DOM_VK_SUBTRACT: 109, 
     DOM_VK_DECIMAL: 110, 
     DOM_VK_DIVIDE: 111, 
     DOM_VK_F1: 112, 
     DOM_VK_F2: 113, 
     DOM_VK_F3: 114, 
     DOM_VK_F4: 115, 
     DOM_VK_F5: 116, 
     DOM_VK_F6: 117, 
     DOM_VK_F7: 118, 
     DOM_VK_F8: 119, 
     DOM_VK_F9: 120, 
     DOM_VK_F10: 121, 
     DOM_VK_F11: 122, 
     DOM_VK_F12: 123, 
     DOM_VK_F13: 124, 
     DOM_VK_F14: 125, 
     DOM_VK_F15: 126, 
     DOM_VK_F16: 127, 
     DOM_VK_F17: 128, 
     DOM_VK_F18: 129, 
     DOM_VK_F19: 130, 
     DOM_VK_F20: 131, 
     DOM_VK_F21: 132, 
     DOM_VK_F22: 133, 
     DOM_VK_F23: 134, 
     DOM_VK_F24: 135, 
     DOM_VK_NUM_LOCK: 144, 
     DOM_VK_SCROLL_LOCK: 145, 
     DOM_VK_COMMA: 188, 
     DOM_VK_PERIOD: 190, 
     DOM_VK_SLASH: 191, 
     DOM_VK_BACK_QUOTE: 192, 
     DOM_VK_OPEN_BRACKET: 219, 
     DOM_VK_BACK_SLASH: 220, 
     DOM_VK_CLOSE_BRACKET: 221, 
     DOM_VK_QUOTE: 222, 
     DOM_VK_META: 224 
    }; 
} 
+1

的引用總是有幫助:http://stackoverflow.com/questions/1465374/javascript-event-keycode-constants/1465409#1465409 – cpburnz 2011-04-28 14:10:28

+1

很抱歉,但對於-1複製/粘貼外國人n代碼沒有提及... – StanE 2016-06-29 15:56:33