JavaScriptはブラウザのタイプとバージョンを判断します。

7205 ワード

回転:http://www.cnblogs.com/leadzen/archive/2008/09/06/1285764.html
 
              ?       IE, Firefox, Opera, Safari       ,           。

          ,               ,  Google   Chrome   。  Chrome    ,         ,       。  ,        “    ”     “    ” 。

               ,                 ,Chrome                。                      ,                           。

       JavaScript          ,        JavaScript              。JavaScript              ,                  ,            userAgent      。      ,           ,                  ,                     userAgent    。

                         userAgent。

       IE

        IE    ActiveX  ,                ,  ActiveXObject  。    window    ActiveXObject  ,              IE。 IE       userAgent  :

        Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)
        Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2)
        Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
        Mozilla/4.0 (compatible; MSIE 5.0; Windows NT)

        ,    MSIE     。

       Firefox

       Firefox  DOM      getBoxObjectFor  ,     DOM        (IE     getBoundingClientRect  )。  Firefox   ,              Firefox。Firefox     userAgent    :

        Mozilla/5.0 (Windows; U; Windows NT 5.2) Gecko/2008070208 Firefox/3.0.1
        Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070309 Firefox/2.0.0.3
        Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070803 Firefox/1.5.0.12
        ,    Firefox     。

       Opera

       Opera           ,  window.opera  。Opera   userAgent  :

        Opera/9.27 (Windows NT 5.2; U; zh-cn)
        Opera/8.0 (Macintosh; PPC Mac OS X; U; en)
        Mozilla/5.0 (Macintosh; PPC Mac OS X; U; en) Opera 8.0

        ,      Opera   。

       Safari

       Safari               openDatabase  ,     Safari   。Safari   userAgent  :

        Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Version/3.1 Safari/525.13
        Mozilla/5.0 (iPhone; U; CPU like Mac OS X) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A93 Safari/419.3

           Version     。

      Chrome

      Chrome   MessageEvent  , Firefox  。  ,  Chrome   Firefox getBoxObjectFor  ,               Chrome    。  ,Chrome userAgent :

        Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13

        ,    Chrome     。

          ,Chrome userAgent    Safari   ,     Chrome      Apple         。

               ,                        。            Sys     ,             ,         。          ,Sys                 ,           。  ,     IE 7.0, Sys.ie   7.0;     Firefox 3.0, Sys.firefox   3.0。           :

    <script type="text/javascript">
        var Sys = {};
        var ua = navigator.userAgent.toLowerCase();
        if (window.ActiveXObject)
            Sys.ie = ua.match(/msie ([\d.]+)/)[1]
        else if (document.getBoxObjectFor)
            Sys.firefox = ua.match(/firefox\/([\d.]+)/)[1]
        else if (window.MessageEvent && !document.getBoxObjectFor)
            Sys.chrome = ua.match(/chrome\/([\d.]+)/)[1]
        else if (window.opera)
            Sys.opera = ua.match(/opera.([\d.]+)/)[1]
        else if (window.openDatabase)
            Sys.safari = ua.match(/version\/([\d.]+)/)[1];
        
        //      
        if(Sys.ie) document.write('IE: '+Sys.ie);
        if(Sys.firefox) document.write('Firefox: '+Sys.firefox);
        if(Sys.chrome) document.write('Chrome: '+Sys.chrome);
        if(Sys.opera) document.write('Opera: '+Sys.opera);
        if(Sys.safari) document.write('Safari: '+Sys.safari);

    </script>

 

          IE       ,  IE     ,     Firefox。                 ,        ,     。    Chrome      ,       Chrome                。  ,         ,                  。

          JavaScript    ,                :

 
    <script type="text/javascript">
        var Sys = {};
        var ua = navigator.userAgent.toLowerCase();
        window.ActiveXObject ? Sys.ie = ua.match(/msie ([\d.]+)/)[1] :
        document.getBoxObjectFor ? Sys.firefox = ua.match(/firefox\/([\d.]+)/)[1] :
        window.MessageEvent && !document.getBoxObjectFor ? Sys.chrome = ua.match(/chrome\/([\d.]+)/)[1] :
        window.opera ? Sys.opera = ua.match(/opera.([\d.]+)/)[1] :
        window.openDatabase ? Sys.safari = ua.match(/version\/([\d.]+)/)[1] : 0;
        
        //      
        if(Sys.ie) document.write('IE: '+Sys.ie);
        if(Sys.firefox) document.write('Firefox: '+Sys.firefox);
        if(Sys.chrome) document.write('Chrome: '+Sys.chrome);
        if(Sys.opera) document.write('Opera: '+Sys.opera);
        if(Sys.safari) document.write('Safari: '+Sys.safari);
    </script>

 

           JavaScript      。  ,       ,                 。

                     ,               userAgent    ,                  。  ,                     ,                ,              ,         。  ,              userAgent            。  ,                 userAgent 。

                userAgent  ,                     。  ,                          。  ,           :

    <script type="text/javascript">
        var Sys = {};
        var ua = navigator.userAgent.toLowerCase();
        var s;
        (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
        (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
        (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
        (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
        (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;

        //      
        if (Sys.ie) document.write('IE: ' + Sys.ie);
        if (Sys.firefox) document.write('Firefox: ' + Sys.firefox);
        if (Sys.chrome) document.write('Chrome: ' + Sys.chrome);
        if (Sys.opera) document.write('Opera: ' + Sys.opera);
        if (Sys.safari) document.write('Safari: ' + Sys.safari);
    </script>

 

        ,   “... ? ... : ...”             。           ,                ,         。                       ,         。

                           ,            。  ,          if(Sys.ie) if(Sys.firefox)   ,           if(Sys.ie == '8.0') if(Sys.firefox == '3.0')   ,           。

                ,          ...