브라우저 체크
useragnet 값 얻어와서 브라우저 문자열 검색.
참고로 indexOf는 파라미터 문자열이 해당 문자열에 포함되어있지않을경우 '-1'을 리턴함.
포함되었을 경우에는 해당 위치(시작점- 0부터표시)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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'; | cs |
IE 버전체크
같은 화면인데, ie8에서는 되고, ie9이상 에서는 안되고.. 뭐 이런경우가 생겨버렸다. xp와 win7의 OS 문제일 수도 있을것 같긴 한데,
테스트를 제대로 해볼 수 가 없는 환경이라 일단 IE 버전체크 하는걸로 해결
보통 익스플로러의 useragnt 값은 이런식으로 나오는데,
1 | msie 8.0; windows nt 5.1; trident/4.0; ...... | cs |
위의 경우처럼 'msie 8.0' 이라고 버전까지 나와있어서,
저부분만 뽑아내면 된다.
1 2 3 4 5 6 7 8 9 10 | 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; } | cs |
이러면 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
1 2 3 4 5 6 | var trident = navigator.userAgent.match(/Trident\/(\d)/i); if(trident != null){ return 1; } else{ return 0; } | cs |
IE 테스트 해보고 싶을때는
morder.IE (http://www.modern.ie/ko ) 여기도 좋음
왜 IE에서 에러나는지 친절하게 알려줌.
'개발' 카테고리의 다른 글
[was][tomcat] 톰켓 2개의 웹사이트 구동 (0) | 2014.09.24 |
---|---|
[javascript] 타이틀 변경 스크립트 (0) | 2014.09.23 |
[java] 웹에서 세션(session)의 사용 (0) | 2014.09.20 |
[javascript] input 숫자만 입력가능 (IE7 적용) (0) | 2014.09.20 |
[java] 스프링 예외처리 (0) | 2014.09.18 |