zoukankan      html  css  js  c++  java
  • js识别不同浏览器

    检測浏览器。注意浏览器推断顺序,主要是基于userAgent做推断。

    //检測浏览器

    var client = function(){
        var engine = {
            ie:0,
            gecko:0,
            webkit:0,
            khtml:0,
            opera:0,
            ver:null
        };
        var browser = {
            //浏览器
            ie: 0,
            firefox: 0,
            safari: 0,
            konq: 0,
            opera: 0,
            chrome: 0,
            ver:null
        };
        var ua = navigator.userAgent;
        //浏览器检測有顺序
        if(window.opera){//opera伪装,所以优先检測
            engine.ver = browser.ver = window.opera.version();
            engine.opera = browser.opera = parseFloat(engine.ver);
        } else if(/AppleWebKit/(S+)/.test(ua)){
            engine.ver = RegExp["$1"];
            engine.webkit = parseFloat(engine.ver);


            //确定是 Chrome 还是 Safari
            if (/Chrome/(S+)/.test(ua)){
                browser.ver = RegExp["$1"];
                browser.chrome = parseFloat(browser.ver);
            } else if (/Version/(S+)/.test(ua)){
                browser.ver = RegExp["$1"];
                browser.safari = parseFloat(browser.ver);
            } else {
                //近似地确定版本
                var safariVersion = 1;
                if (engine.webkit < 100){
                    safariVersion = 1;
                } else if (engine.webkit < 312){
                    safariVersion = 1.2;
                } else if (engine.webkit < 412){
                    safariVersion = 1.3;
                } else {
                    safariVersion = 2;
                }


                browser.safari = browser.ver = safariVersion;
            }




        }else if (/KHTML/(S+)/.test(ua) || /Konqueror/([^;]+)/.test(ua)){
            engine.ver = browser.ver = RegExp["$1"];
            engine.khtml = browser.konq = parseFloat(engine.ver);
        }else if (/rv:([^)]+)) Gecko/d{8}/.test(ua)){
            engine.ver = RegExp["$1"];
            engine.gecko = parseFloat(engine.ver);
            //确定是不是 Firefox
            if (/Firefox/(S+)/.test(ua)){
                browser.ver = RegExp["$1"];
                browser.firefox = parseFloat(browser.ver);
            }
        }else if (/MSIE ([^;]+)/.test(ua)){
            engine.ver = browser.ver = RegExp["$1"];
            engine.ie = browser.ie = parseFloat(engine.ver);
        }
        return {
            engine:engine,
            browser: browser
        };
    }();


    //调用

    if (client.engine.webkit) { //if it’s WebKit 
     if (client.browser.chrome){ 
     //运行针对 Chrome 的代码 
     } else if (client.browser.safari){ 
     //运行针对 Safari 的代码 
     } 
    } else if (client.engine.gecko){ 
     if (client.browser.firefox){ 
     //运行针对 Firefox 的代码 
     } else { 
     //运行针对其它 Gecko 浏览器的代码 
     } 

  • 相关阅读:
    未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序 解决方法
    未能从程序集“System.ServiceModel, Version=3.0.0.0问题解决
    HTML5斯诺克桌球俱乐部【译】
    MVC调试时查看生成的sql语句
    小问题 小技巧 :创建虚拟目录并将IIS里面.net配置版本设为2.0
    网页调用服务程序
    WatiN——Web自动化测试(三)【弹出窗口处理】
    WatiN——Web自动化测试(二)
    小问题 小技巧 :网站路径问题
    小问题 小技巧:敲回车默认提交
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7251833.html
Copyright © 2011-2022 走看看