다른 포스트([js/jQuery] Customized checkbox/radio button)에서 사용했던 코드인데 다시 정리합니다.
function getIEVersion() { var ua = window.navigator.userAgent, msie = ua.indexOf("MSIE "); if(msie > 0) { return parseInt(ua.substring(msie + 5, ua.indexOf(".", msie))); } else { return 0; } }
구현 방법은 매우 단순합니다.
navigator 객체의 userAgent 프로퍼티에서 버전 부분만 추출하는 방식입니다.
아래는 Internet explorer 10 의 userAgent 정보입니다. 이를 기준으로 코드를 설명하면,
"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)"
- “MSIE “가 몇번째 위치에 있는지 indexOf 로 받아오고 // Line 3
- 해당 위치부터 5을 더한 (“MSIE ” 가 5글자 이므로) 곳에서 “.” 을 만나는 곳 까지의 문자열을 parseInt 로 캐스팅한 뒤 리턴하고 있습니다. // Line 5
- 만일 “MSIE “가 없을 경우 0 을 리턴합니다. // Line 7
구 버전 브라우저 추적을 위한 목적으로 작성된 코드라서 IE 11 이후의 브라우저는 버전 추출이 되지 않습니다.
이유는 IE11 부터는 userAgent 프로퍼티에 “MSIE “라는 글자가 없기 때문입니다.
필요시 해당 부분도 추가하여 업데이트 하겠습니다. 😉