Tip&Tech 브라우저 체크 (Bowser Check)
페이지 정보

본문
<!--[if !IE]><p>Internet Explorer가 아닙니다.</p><![endif]-->
var agent = window.navigator.userAgent;
//MSIE
if( agent.match("MSIE") || agent.match("Trident") ){
return "MSIE";
}else if( agent.match("Chrome") ){
return "Chrome";
}else if( agent.match("Safari") ){
return "Safari";
}else if( agent.match("Firefox") ){
return "Firefox";
}else if( agent.match("Opera") ){
return "Opera";
}else{
return "Other";
}
}
- 이전글JSON key Name 정보 가져오기 - Object.keys(), Object.getOwnPropertyNames() 15.05.15
- 다음글자바스크립트 정규표현식 15.05.12
댓글목록

너갱이님의 댓글
너갱이 작성일
우선 브라우저 체크
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;
}
IE 테스트 해보고 싶을때는
morder.IE (http://www.modern.ie/ko ) 여기도 좋음
왜 IE에서 에러나는지 친절하게 알려줌.

너갱이님의 댓글
너갱이 작성일
IE 테스트 해보고 싶을때는
morder.IE (http://www.modern.ie/ko ) 여기도 좋음
왜 IE에서 에러나는지 친절하게 알려줌.

