본문 바로가기

퍼블리싱/jQeury, Javascript

useragent, os 체크해서 <html>에 class로 추가하기

userAgent와 os 체크해서 해당 버전들을 html에 class로 추가하기다.

이렇게하면 브라우저뿐만 아니라 해당 운영체제별로 크로스브라우징을 할 수 있다.

처음으로 풀 자바스크립트로 해봤는데, 확실히 공부하면 제이쿼리보다 순수스크립트가 더 재미있을 것 같다는 생각이 들었다.


아무튼 아래코드로 작성하면, <html class="ie11 desktop win">이런식으로 클래스가 추가된다.

특정 브라우저나 os 이슈 대응 때 이용하면 좋을 것 같다.


var userAgentCheck = function(){    
            var ua = navigator.userAgent.toString().toLowerCase();
            var agent =  {
                    ie : (/msie/i).test(ua) || (/trident/i).test(ua),
                    firefox: (/firefox/i).test(ua),
                    webkit: (/applewebkit/i).test(ua),
                    chrome: (/chrome/i).test(ua),
                    opera: (/opera/i).test(ua),
                    ios: (/ip(ad|hone|od)/i).test(ua),
                    android: (/android/i).test(ua)
                };

                agent.safari = agent.webkit && !agent.chrome;
                agent.mobile = document.ontouchstart !== undefined && ( agent.ios || agent.android );
                agent.desktop = !(agent.ios || agent.android);

                // ie 버전체크
                if(agent.ie){
                    var _ieversion = ua.match(/(msie |trident.*rv[ :])([0-9]+)/)[2];
                    _ieversion = Math.floor(_ieversion);
                    agent.ie = "ie"+_ieversion;
                }                

                agent.os = (navigator.appVersion).match(/(mac|win|linux)/i);
                agent.os =  agent.os ? agent.os[1].toLowerCase() : '';  

                var _html = document.getElementsByTagName('html')[0];
                var _class = '';
                for (var value in agent) {
                      if(agent[value]){                                
                            if(value == 'os'){
                                _class += agent.os;
                            }else if(value == 'ie'){
                                _class += agent[value]+' ';
                            }else{
                                _class += value+' ';
                            }
                      }                      
                }
                _html.className += _class;
               
 }();


'퍼블리싱 > jQeury, Javascript' 카테고리의 다른 글

Swipe 플러그인 모음  (0) 2015.06.25
== 과 ===의 차이  (0) 2015.05.27
iframe안 요소에 접근하기  (0) 2015.05.11
test() method 사용하기  (0) 2015.05.04
Windows xp, vista, 7 버전 체크  (0) 2015.05.04