Coding/JavaScript

[Javascript] 브라우저가 Internet Explorer 인지 체크하기

junedev 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

 

‘인터넷 익스플로러’서 유튜브 못본다…구글, 3월부터 정책 변경

오는 3월부터 데스크톱 PC에서 ‘인터넷 익스플로러’로 유튜브를 시청할 수 없게 됐다. 구글은 “3월부터 유튜브 최신 버전을 최대한 활용하기 위해 최신 데스크톱 버전에서만 액세…

www.donga.com

 

 

Edge나 Chrome을 사용하도록 권유되고 있지만, 아직 IE를 사용하는 고객이 많은 건 어쩔 수 없는 사실입니다. 

 

따라서 어쩔 수 없이 IE 호환을 포기하거나, IE일때만 따로 처리하거나, IE 호환에 맞는 라이브러리를 사용하거나

 

 

셋중 하나를 선택할 수 밖에 없겠네요.

 

 

이상으로 포스팅을 마칩니다.