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>

    检测结果如下:

  • 相关阅读:
    iconv 文件编码相互转换
    MySQL 字符编码
    MySQL there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause同时创建多个更新当前时间戳字段 解决方法
    PHP 输出日志到文件 DEMO
    Nginx http -> https 跳转后 POST 丢失
    SSH SCP 远程密钥登录配置和服务器间的文件传输
    Mac 安装 7zip
    git pull There is no tracking information for the current branch.
    MacOS 安装配置 Laravel
    Mac OS 安装 MySQL5.7
  • 原文地址:https://www.cnblogs.com/jkisjk/p/QWrap_Browser.html
Copyright © 2011-2022 走看看