상세 컨텐츠

본문 제목

브라우저 체크, 브라우져 버전 체크

JAVA

by AlrepondTech 2020. 9. 17. 19:08

본문

반응형

 

 

 

 

=================================

=================================

=================================

 

 

 

 

 

 

 

출처: http://changpd.blogspot.kr/2013/04/javascript.html

2013-04-09

[javascript] 브라우저 체크, 익스플로러 버전체크

우선 브라우저 체크 

useragnet 값 얻어와서 브라우저 문자열 검색.


참고로 indexOf는 파라미터 문자열이 해당 문자열에 포함되어있지않을경우 '-1'을 리턴함.
포함되었을 경우에는 해당 위치(시작점- 0부터표시)

var agt = navigator.userAgent.toLowerCase();
if (agt.indexOf("chrome") != -1) return 'Chrome'; 
if (agt.indexOf("opera") != -1) return 'Opera'; 
if (agt.indexOf("staroffice") != -1) return 'Star Office'; 
if (agt.indexOf("webtv") != -1) return 'WebTV'; 
if (agt.indexOf("beonex") != -1) return 'Beonex'; 
if (agt.indexOf("chimera") != -1) return 'Chimera'; 
if (agt.indexOf("netpositive") != -1) return 'NetPositive'; 
if (agt.indexOf("phoenix") != -1) return 'Phoenix'; 
if (agt.indexOf("firefox") != -1) return 'Firefox'; 
if (agt.indexOf("safari") != -1) return 'Safari'; 
if (agt.indexOf("skipstone") != -1) return 'SkipStone'; 
if (agt.indexOf("msie") != -1) return 'Internet Explorer'; 
if (agt.indexOf("netscape") != -1) return 'Netscape'; 
if (agt.indexOf("mozilla/5.0") != -1) return 'Mozilla'; 

이번엔 IE 버전체크 

같은 화면인데, ie8에서는 되고, ie9이상 에서는 안되고.. 뭐 이런경우가 생겨버렸다. xp와 win7의 OS 문제일 수도 있을것 같긴 한데, 테스트를 제대로 해볼 수 가 없는 환경이라 일단 IE 버전체크 하는걸로 해결ㅋ.
보통 익스플로러의 useragnt 값은 이런식으로 나오는데,

msie 8.0; windows nt 5.1; trident/4.0; ......

위의 경우처럼 'msie 8.0' 이라고 버전까지 나와있어서,
저부분만 뽑아내면 된다.

function getInternetExplorerVersion() {    
         var rv = -1; // Return value assumes failure.    
         if (navigator.appName == 'Microsoft Internet Explorer') {        
              var ua = navigator.userAgent;        
              var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");        
              if (re.exec(ua) != null)            
                  rv = parseFloat(RegExp.$1);    
             }    
         return rv; 
    } 

이러면 rv값에 '8' 이 리턴됨.

그런데 간혹.
IE 8 이상에서도 'msie 7.0' 이라고 나오는 경우가 있다. (호환성보기 사용)
그렇게 되면 'msie 7.0' 만 가지고는
이놈이 7,8,9,10 중에 어떤놈인지 확인이 불가능하다.

그런데 이럴때도 7,8,9,10 같에 차이는 있다.

mise 뒤쪽에 trident/4.0; 이 부분으로 식별하면 된다.

8버전 이상의 trident 값은 아래와 같다.
7이하의 버전에서는 trident 값이 없다.

IE 8 = trident/4.0
IE 9 = trident/5.0
IE 10 = trident/6.0 

trident 값 체크 t

var trident = navigator.userAgent.match(/Trident\/(\d)/i);
if(trident != null){
     return 1;
} else{
     return 0;
}

E 테스트 해보고 싶을때는
morder.IE (http://www.modern.ie/ko ) 여기도 좋음

왜 IE에서 에러나는지 친절하게 알려줌.

 

 

=================================

=================================

=================================

 

 

 

<script type="text/javascript">

var Browser = {

    a : navigator.userAgent.toLowerCase()

}





Browser = {

    ie : /*@cc_on true || @*/ false,

    ie6 : Browser.a.indexOf('msie 6') != -1,

    ie7 : Browser.a.indexOf('msie 7') != -1,

    ie8 : Browser.a.indexOf('msie 8') != -1,

    opera : !!window.opera,

    safari : Browser.a.indexOf('safari') != -1,

    safari3 : Browser.a.indexOf('applewebkit/5') != -1,

    mac : Browser.a.indexOf('mac') != -1,

    chrome : Browser.a.indexOf('chrome') != -1,

    firefox : Browser.a.indexOf('firefox') != -1

}





function whatKindOfBrowser() {

if (Browser.chrome) {

alert("It is chrome browser");

} else if (Browser.ie8) {

alert("It is ie8 browser");

} else if (Browser.ie7) {

alert("It is ie7 browser");

} else if (Browser.ie6) {

alert("It is ie6 browser");

} else if (Browser.opera) {

alert("It is opera browser");

} else if (Browser.safari) {

alert("It is safari browser");

} else if (Browser.safari3) {

alert("It is safari3 browser");

} else if (Browser.mac) {

alert("It is mac browser");

} else if (Browser.firefox) {

alert("It is firefox browser");

} else {

alert("It is maybe ie");

}

}

</script>

 

 

=================================

=================================

=================================

 

 

 

출처: http://namelessja.egloos.com/3343043

 

[javascript] 브라우저 체크 방법 Javascript

jquery에서 사용하던 browser.msie가 먹히지 않아서 브라우저 체크를 바꿔버렸다...

javascript에서 브라우저 정보를 찾으려면 다음 항목을 체크하면 된다.

navigator.userAgent


해당 항목에는 브라우저 종류, 버전 등에 대한 정보가 담겨져 있다.
console.log 같은 걸로 찍어보면 다음과 같이 나타나게 된다.

- Google Chrome
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36 

- Microsoft Explorer 9
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E) 


따라서 다음과 같은 방법으로 브라우저를 체크한다.

어차피 구분하는건 msie인지 아닌지만 하기때문에 간단하게 되는듯도....

별로도 다른 브라우저들을 구분해야 한다면 if문을 추가하면 된다.

var browser = navigator.userAgent.toLowerCase();
if ( -1 != browser.indexOf('chrome') )
return 'chrome';
if ( -1 != browser.indexOf('msie') )
return 'msie';
if ( -1 != browser.indexOf('opera') )
return 'opera';
return 'undefined browser';

 

 

=================================

=================================

=================================

 

 

반응형


관련글 더보기

댓글 영역