• 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 浏览器的代码 
     } 

  • 相关阅读:
    Extjs知识点汇总
    div设置滚动条内容任然显示不全
    win7 系统安装 docker
    docker常用命令
    cargo实现自动化部署远程jetty容器(非安全模式)
    win7 失去焦点解决方案
    jeecms 评论相关
    jeecms v8 网站访问量配置
    python——进程池
    python多进程编程常用到的方法
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7251833.html
Copyright © 2020-2023  润新知