프로그램/Html_JavaScript

javascript 의 key event 처리방법은, IE 와 Chrome / Firefox 가 다르다.

(주)CKBcorp., 2015. 7. 31. 06:00
반응형

말그대로임.


버전까지 비교하면서 테스트 해 보지는 않았는데, IE 11 과 chrome , firefox 는 키 입력 이벤트 처리법이 다르다. 


먼저 소스부터 보면,



// for chrome, firegox

window.onkeydown = function() {

    var kcode = event.keyCode;

    if ( kcode == 13 || kcode == 65 ) 

    {

        alert(' a : 65 , enter : 13 ');

    }

}


// for IE

document.onkeydown = function(e)

{

    key = ( e ) ? e.keyCode : event.keyCode;

    if ( kcode == 13 || kcode == 65 ) 

    {

        alert(' a : 65 , enter : 13 ');

    }

}



꽤 다르다. 

IE 는 key 이벤트를 document 객체에서 처리하고, onkeyevent 도 인자값이 필요하다.

내가 알기로는 IE 와 같은  인자값을 함수에 넘겨주는 이벤트 처리 방식을 chrome 도 지원하는 걸로 아는데, 코드로 확인 안 한 관계로 일단은 패스.

객체 이름도 e.keyCode 와 event.keyCode 로 다르다.


결론 : 두 플랫폼에 따라 코드를 다르게 준비해야 한다. 




반응형