Programming language/Javascript,jQuery

[Javascript]브라우저 체크하기

  • -
반응형

요즘 포트폴리오 용도로 사이트를 하나 개발중인데 브라우저 타입이 IE일 때와 크롬일 때 실행차이가 있는 부분이 있다...ㅠㅠ

물론 브라우저 시장이 크롬이 독보적이긴 하나 예외사항은 언제나 있으니까.. 이 부분은 따로 처리해줘야할 것 같았다.


fullpage.js라는 오픈소스를 사용해서 한 페이지를 길게 사용할려고 했는데 크롬에서는 정상적으로 되는데 IE에서는 아래처럼 나온다. 이유를 찾아보다가 차라리 접속 브라우저가 IE일경우에는 다른 페이지를 출력시키는 것도 괜찮을 것 같다는 생각이 들었다. 그리고 그 페이지에는 포트폴리오 pdf파일을 업로드 시켜놓을 계획이다.



각설하고 구글링을 시작했다.

브라우저 타입 체크는 어렵지 않았다.

IE 11버전의 경우 조금 까다롭긴했지만 아래와 같이 잡을 수 있었다.


1
2
3
4
5
6
7
8
9
10
11
<script type="text/javascript">
window.onload = function(){
    var browse = navigator.userAgent.toLowerCase(); 
        
    if( (navigator.appName == 'Netscape' && browse.indexOf('trident'!= -1|| (browse.indexOf("msie"!= -1)) {
         alert("본 사이트는 크롬버전에 최적화되어있습니다.");        
         window.location.href = "../intro/portfollio.jsp";
    }
 
};
</script>
cs


코드를 조금 설명해보면 다음과 같다.

navigator 객체는 브라우저의 정보를 제공해주는 객체이다.

userAgent는 클라이언트가 사용하는 브라우저의 종류라고 볼 수 있다. 실제로 웹에 찍어보면 확인할 수 있다.


1
alert("브라우저는 ? " +navigator.userAgent);
cs





indexOf()는 문자열의 위치를 구할 때 사용하기도 하지만 문자열을 찾을 때도 사용이 가능하다. indexOf()를 사용하여 찾는 문자열이 없는 경우 -1을 반환한다. 때문에 -1이 아닌 경우가 조건에 붙는다.


navigator.appName == 'Netscape' && browse.indexOf('trident'!= -1|| (browse.indexOf("msie"!= -1)


appName은 웹 브라우저의 이름이다. 따라서 IE 11버전을 고려하여(11버전 이상부터 appName을 "Netscape"를 사용하더라..) 비교해준다.

다음으로 trident. IE 8버전 이상부터는 유저정보에 "trident"라는게 붙었다.


 IE6.0 = null

 IE7.0 = null

 IE8.0 = Trident/4.0

 IE9.0 = Trident/5.0

IE10.0 = Trident/6.0


마지막으로 msie는 "Microsoft Internet Explorer"를 뜻한다. toLowerCase()로 소문자 치환을 해줬기 때문에 msie로 비교되었다.


<결과>


<redirect된 페이지>



추가로 아래는 크롬, 사파리, 파이어폭스의 경우이다.


1
2
3
4
5
6
7
if( agent.indexOf("chrome"!= -1 ){
    alert("CHROME");
else if ( agent.indexOf("safari"!= -1 ){
    alert("SAFARI");
else if ( agent.indexOf("firefox"!= -1 ){
    alert("FIREFOX");
}
cs




피드백은 언제나 환영입니다 :)

반응형

'Programming language > Javascript,jQuery' 카테고리의 다른 글

[jQuery]체크박스 체크하기  (0) 2018.11.27
[jQuery]체크박스 체크여부  (0) 2018.11.22
[jQuery]Ajax 예제  (16) 2018.10.28
fullpage.js 사용법  (2) 2018.09.10
[Javascript]파일 확장자 체크하기  (0) 2018.08.31
Contents

포스팅 주소를 복사했습니다.

이 글이 도움이 되었다면 공감 부탁드립니다.