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>

    检测结果如下:

  • 相关阅读:
    原创 爱因斯坦迷题及推导过程
    惊闻姑姑家女婿去世,哀叹生命之脆弱,死亡如此接近
    京东自营预售逻辑
    自营SKU绑定逻辑
    自营结算解释&对账逻辑
    CPS逻辑
    京东搜索结果数据异常
    C++静态库中使用_declspec(dllexport) 不能导出函数的问题
    HTTP+SVN访问速度慢的问题
    Python log
  • 原文地址:https://www.cnblogs.com/jkisjk/p/QWrap_Browser.html
Copyright © 2011-2022 走看看