zoukankan      html  css  js  c++  java
  • QWrap的浏览器检测

    有时需要根据不同的浏览器,做不同的事。
    这就需要我们对浏览器以及版本作检测。
    QWrap的Browser主要代码如下。

    var QW={};
    /**
    * @class Browser js的运行环境,浏览器以及版本信息。(Browser仅基于userAgent进行嗅探,存在不严谨的缺陷。)
    * @singleton
    * @namespace QW
    */
    QW.Browser
    =function(){
    var na = window.navigator,
    ua
    = na.userAgent.toLowerCase(),
    browserTester
    = /(msie|webkit|gecko|presto|opera|safari|firefox|chrome|maxthon)[ \/]([\d.]+)/ig,
    Browser
    = {platform: na.platform};
    ua.replace(browserTester,
    function(a,b,c){
    var bLower=b.toLowerCase();
    Browser[bLower]
    =c;
    });
    if(Browser.opera) {//Opera9.8后版本号位置变化
    ua.replace(/opera.*version\/([\d.]+)/, function(a,b){Browser.opera=b;});
    }
    if(Browser.msie){
    Browser.ie
    = Browser.msie;
    var v = parseInt(Browser.msie);
    Browser.ie6
    = v==6;
    Browser.ie7
    = v==7;
    Browser.ie8
    = v==8;
    Browser.ie9
    = v==9;
    }
    return Browser;
    }();
    if(QW.Browser.ie){try{document.execCommand("BackgroundImageCache",false,true);}catch(e){}}

    测试代码:

    View Code
    <html>
    <body>
    <script>
    var QW={};
    /**
    * @class Browser js的运行环境,浏览器以及版本信息。(Browser仅基于userAgent进行嗅探,存在不严谨的缺陷。)
    * @singleton
    * @namespace QW
    */
    QW.Browser
    =function(){
    var na = window.navigator,
    ua
    = na.userAgent.toLowerCase(),
    browserTester
    = /(msie|webkit|gecko|presto|opera|safari|firefox|chrome|maxthon)[ \/]([\d.]+)/ig,
    Browser
    = {platform: na.platform};
    ua.replace(browserTester,
    function(a,b,c){
    var bLower=b.toLowerCase();
    Browser[bLower]
    =c;
    });
    if(Browser.opera) {//Opera9.8后版本号位置变化
    ua.replace(/opera.*version\/([\d.]+)/, function(a,b){Browser.opera=b;});
    }
    if(Browser.msie){
    Browser.ie
    = Browser.msie;
    var v = parseInt(Browser.msie);
    Browser.ie6
    = v==6;
    Browser.ie7
    = v==7;
    Browser.ie8
    = v==8;
    Browser.ie9
    = v==9;
    }
    return Browser;
    }();
    if(QW.Browser.ie){try{document.execCommand("BackgroundImageCache",false,true);}catch(e){}}
    </script>

    <script>
    function print(o) {
    var html=[];
    for(var i in o) html.push('('+(typeof o[i])+') '+i+' : '+o[i]);
    document.write(html.join(
    '<br/>'));
    }
    print(QW.Browser);
    </script>
    </body>
    </html>

    检测结果如下:

  • 相关阅读:
    宏任务、微任务与Event Loop
    puppteer的使用
    docker的使用 -- windows
    vscode集成eslint
    删除git中无用的大文件
    git 使用
    利用chrome devtool 观察页面占用内存
    JS对象-不可扩展对象、密封对象、冻结对象
    数学
    素数 + 背包
  • 原文地址:https://www.cnblogs.com/jkisjk/p/QWrap_Browser.html
Copyright © 2011-2022 走看看