-
[Javascript] 브라우저가 Internet Explorer 인지 체크하기Coding/JavaScript 2020. 8. 18. 19:04
자바스크립트의 navigator.userAgent 객체에는 브라우저에 대한 정보가 나와있습니다.
따라서 현재 클라이언트가 접속한 브라우저가 익스플로어(IE)인지 체크하기 위해서는 appName에 익스플로어(msie)가 있는지 체크하기만 하면 됬죠. 실제로 서비스되는 웹 페이지에서 익스플로어에 호환 문제가 제일 많이 발생하기 때문에
아오익스플로러 체크를 해서 따로 처리를 해주는 경우가 많습니다.(jQuery 3 이상은 IE 낮은 버전에서 사용이 안되고, history API 같은 경우는 IE 11의 일정 버전 이상에서만 작동합니다.
대체 왜?)근데,
IE 12 이후로
알 수 없는 이유로익스플로어의 appName이 'Netscape'로 바뀌었습니다.따라서 IE 12 이상도 대응을 하기 위해서는 다음과 같은 로직을 사용해야 합니다.
(기존에는 username에 'msie'가 들어가 있는지만 체크하면 됬습니다)
var agent = navigator.userAgent.toLowerCase(); if ( (navigator.appName == 'Netscape' && navigator.userAgent.search('Trident') != -1) || (agent.indexOf("msie") != -1) ) { alert('Internet Explorer는 호환되지 않는 브라우저 입니다.') }
웹 페이지를 개발하면서 제이쿼리 뿐 아니라 다른 라이브러리를 이것저것 사용하다 보면, IE에서 오류가 굉-장히 많이 납니다.
IE는 2020년 1월부로 서비스가 종료된 상태이니까요.
(정확히는 보안 업데이트가 중지되었습니다)
실제로 유튜브는 구글사의 정책에 따라 2020년 3월부로 IE 지원을 중지하였습니다.
https://www.donga.com/news/It/article/all/20200209/99599465/1
Edge나 Chrome을 사용하도록 권유되고 있지만, 아직 IE를 사용하는 고객이 많은 건 어쩔 수 없는 사실입니다.
따라서 어쩔 수 없이 IE 호환을 포기하거나, IE일때만 따로 처리하거나, IE 호환에 맞는 라이브러리를 사용하거나
셋중 하나를 선택할 수 밖에 없겠네요.
이상으로 포스팅을 마칩니다.
'Coding > JavaScript' 카테고리의 다른 글
자바스크립트에서 세미콜론(;)을 꼭 사용해야 하는 이유가 있다? (0) 2020.10.16 내 홈페이지에 Daum 우편번호 서비스 API 붙이기! (반응형) (0) 2020.09.08 [History] SPA에서 URL을 업데이트하는 효율적인 방법 (0) 2020.08.02 [JQuery] Radio 버튼의 체크 여부 가져오기 (0) 2020.07.04 [JavaScript] 콜백 함수로 화살표 함수를 전달하기 (0) 2020.01.21