Programming
No. | 501 |
Name. | swindler |
Subject. | Explorer, Firefox, javascript 키보드 제어 |
Main Cate. | Javascript |
Sub Cate. | |
Date. | 2008-11-19 10:06 |
Hit. | 3697 (210.182.190.136) |
File. | |
요즘 파폭으로 홈피에 접속하다보니 안 되는 기능 몇개가 참 불편하다. 그중에 단축키 기능을 수정했음... Put the following code in a .js file and include it in your html page: var Keys = { BACKSPACE: 8, TAB: 9, ENTER: 13, SHIFT: 16, CTRL: 17, ALT: 18, PAUSE: 19, CAPS: 20, ESC: 27, PAGEUP: 33, PAGEDN: 34, END: 35, HOME: 36, LEFT: 37, UP: 38, RIGHT: 39, DOWN: 40, INSERT: 45, DELETE: 46, n0: 48, n1: 49, n2: 50, n3: 51, n4: 52, n5: 53, n6: 54, n7: 55, n8: 56, n9: 57, A:65, B:66, C:67, D:68, E:68, F:70, G:71, H:72, I:73, J:74, K:75, L:76, M:77, N:78, O:79, P:80, Q:81, R:82, S:83, T:84, U:85, V:86, W:87, X:88, Y:89, Z:90, WINLEFT: 91, WINRIGHT: 92, SELECT: 93, NUM0: 96, NUM1: 97, NUM2: 98, NUM3: 99, NUM4: 100, NUM5: 101, NUM6: 102, NUM7: 103, NUM8: 104, NUM9: 105, MULTIPLY: 106, ADD: 107, SUBTRACT: 109, DECIMAL: 110, DIVIDE: 111, F1: 112, F2: 113, F3: 114, F4: 115, F5: 116, F6: 117, F7: 118, F8: 119, F9: 120, F10: 121, F11: 122, F12: 123, NUMLOCK: 144, SCROLLLOCK: 145, SEMICOLON: 186, EQUAL: 187, COMMA: 188, DASH: 189, PERIOD: 190, FORWARDSLASH: 191, GRAVEACCENT: 192, OPENBRACKET: 219, BACKSLASH: 220, CLOSEBRACKET: 221, QUOTE: 222 }; function KeyPressEvent(eventObj) { this.eventHandler = null; //the event handler this.eventElement = null; //the element that caused the event this.elementTag = ""; //the html tag that caused the event this.elementID = ""; //the id of the element this.element = null; //the actual element this.keyCode = 0; //the keycode to capture if( document.all ) { // IE this.eventHandler = eventObj; this.eventElement = eventObj.srcElement; this.elementTag = eventObj.srcElement.tagName; this.elementID = eventObj.srcElement.name; this.element = eventObj.srcElement; this.keyCode = eventObj.keyCode; } else { // Not IE this.eventHandler = eventObj; this.eventElement = eventObj.target.srcElement; this.elementTag = eventObj.target.tagName; this.elementID = eventObj.target.name; this.element = eventObj.target; this.keyCode = eventObj.which; // Safari bug workaround if (this.element.nodeType == 3) targ = targ.parentNode; } } function KeyHandler() { //register for the event if ( document.addEventListener ) document.addEventListener("keydown", this.keyDown.bind(this), false); else if ( document.attachEvent ) document.attachEvent("onkeydown", this.keyDown.bind(this)); else document.onkeydown = this.keyDown.bind(this); if (document.layers) document.captureEvents(Event.KEYDOWN); if ( document.addEventListener ) document.addEventListener("keyup", this.keyUp.bind(this), false); else if ( document.attachEvent ) document.attachEvent("onkeyup", this.keyUp.bind(this)); else document.onkeyup = this.keyUp.bind(this); if (document.layers) document.captureEvents(Event.KEYUP); } KeyHandler.prototype.keyDown = function(e) { if ( typeof(this.onKeyDown) != "undefined" ) { if ( !e ) e = window.event; var r = this.onKeyDown( new KeyPressEvent(e) ); if ( r == false ) { if ( window.event ) window.event.cancelBubble = true; if ( window.event ) window.event.returnValue = false; if ( e.preventDefault ) e.preventDefault(); return false; } else { if ( window.event ) window.event.cancelBubble = false; if ( window.event ) window.event.returnValue = true; return true; } } else { alert("No Key Press Event Handler Found!"); } }; KeyHandler.prototype.keyUp = function(e) { if ( typeof(this.onKeyUp) != "undefined" ) { if ( !e ) e = window.event; var r = this.onKeyUp( new KeyPressEvent(e) ); if ( r == false ) { if ( window.event ) window.event.cancelBubble = true; if ( window.event ) window.event.returnValue = false; if ( e.preventDefault ) e.preventDefault(); if ( e.stopPropagation ) e.stopPropagation(); return false; } else { if ( window.event ) window.event.cancelBubble = false; if ( window.event ) window.event.returnValue = true; return true; } } else { alert("No Key Press Event Handler Found!"); } }; Useage: var kh = new KeyHandler(); kh.onKeyDown = function(e) // e is a KeyPressEvent object { if ( e.eventElement == document.getElementById("textbox1") && e.keyCode == 45 ) return false; //cancel the press //more information available from e e.eventHandler //the event handler e.eventElement //the element that caused the event e.elementTag //the html tag that caused the event e.elementID //the id of the element e.element //the actual element e.keyCode //the keycode to capture return true; } kh.onKeyUp = function() { //do nothing return true; } [바로가기 링크] : http://coolx.net/cboard/develop/501 |
|
|
|
[Modify] [Delete] | [Reply] [List] |