프로그램/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 로 다르다.
결론 : 두 플랫폼에 따라 코드를 다르게 준비해야 한다.
반응형