码迷,mamicode.com
首页 > Web开发 > 详细

jquery判断浏览器版本插件,jquery-browser.js

时间:2017-03-27 00:40:53      阅读:1343      评论:0      收藏:0      [点我收藏+]

标签:ret   safari   explorer   height   code   tor   fse   下载   set   

一、jquery判断浏览器版本插件,jquery-browser.js

 

jquery 1.9 之后已经删除判断浏览器版本的方法:

$.browser.msie 

$.browser.version

原因是:

 

注意:通过user agent字符串来检测浏览器不是一个好主意,在1.9中将完全移除该方法,不过你可以使用jQuery Migrate(迁移)插件。或者你可以试试Modernizr

 

但如果想用怎么办呢?

 

二、解决方法:

 

复制下面的代码,保存为jquery-browser.js,在jquery.js下增加jquery-browser.js,就可以使用jquery删除的浏览器版本判断的方法了。

 

附件也有文件,可直接下载。

 

    (function(jQuery) {  
      
        if (jQuery.browser)  
            return;  
      
        jQuery.browser = {};  
        jQuery.browser.mozilla = false;  
        jQuery.browser.webkit = false;  
        jQuery.browser.opera = false;  
        jQuery.browser.msie = false;  
      
        var nAgt = navigator.userAgent;  
        jQuery.browser.name = navigator.appName;  
        jQuery.browser.fullVersion = ‘‘ + parseFloat(navigator.appVersion);  
        jQuery.browser.majorVersion = parseInt(navigator.appVersion, 10);  
        var nameOffset, verOffset, ix;  
      
        // In Opera, the true version is after "Opera" or after "Version"  
        if ((verOffset = nAgt.indexOf("Opera")) != -1) {  
            jQuery.browser.opera = true;  
            jQuery.browser.name = "Opera";  
            jQuery.browser.fullVersion = nAgt.substring(verOffset + 6);  
            if ((verOffset = nAgt.indexOf("Version")) != -1)  
                jQuery.browser.fullVersion = nAgt.substring(verOffset + 8);  
        }  
        // In MSIE, the true version is after "MSIE" in userAgent  
        else if ((verOffset = nAgt.indexOf("MSIE")) != -1) {  
            jQuery.browser.msie = true;  
            jQuery.browser.name = "Microsoft Internet Explorer";  
            jQuery.browser.fullVersion = nAgt.substring(verOffset + 5);  
        }  
        // In Chrome, the true version is after "Chrome"  
        else if ((verOffset = nAgt.indexOf("Chrome")) != -1) {  
            jQuery.browser.webkit = true;  
            jQuery.browser.name = "Chrome";  
            jQuery.browser.fullVersion = nAgt.substring(verOffset + 7);  
        }  
        // In Safari, the true version is after "Safari" or after "Version"  
        else if ((verOffset = nAgt.indexOf("Safari")) != -1) {  
            jQuery.browser.webkit = true;  
            jQuery.browser.name = "Safari";  
            jQuery.browser.fullVersion = nAgt.substring(verOffset + 7);  
            if ((verOffset = nAgt.indexOf("Version")) != -1)  
                jQuery.browser.fullVersion = nAgt.substring(verOffset + 8);  
        }  
        // In Firefox, the true version is after "Firefox"  
        else if ((verOffset = nAgt.indexOf("Firefox")) != -1) {  
            jQuery.browser.mozilla = true;  
            jQuery.browser.name = "Firefox";  
            jQuery.browser.fullVersion = nAgt.substring(verOffset + 8);  
        }  
        // In most other browsers, "name/version" is at the end of userAgent  
        else if ((nameOffset = nAgt.lastIndexOf(‘ ‘) + 1) < (verOffset = nAgt  
                .lastIndexOf(‘/‘))) {  
            jQuery.browser.name = nAgt.substring(nameOffset, verOffset);  
            jQuery.browser.fullVersion = nAgt.substring(verOffset + 1);  
            if (jQuery.browser.name.toLowerCase() == jQuery.browser.name  
                    .toUpperCase()) {  
                jQuery.browser.name = navigator.appName;  
            }  
        }  
        // trim the fullVersion string at semicolon/space if present  
        if ((ix = jQuery.browser.fullVersion.indexOf(";")) != -1)  
            jQuery.browser.fullVersion = jQuery.browser.fullVersion  
                    .substring(0, ix);  
        if ((ix = jQuery.browser.fullVersion.indexOf(" ")) != -1)  
            jQuery.browser.fullVersion = jQuery.browser.fullVersion  
                    .substring(0, ix);  
      
        jQuery.browser.majorVersion = parseInt(‘‘ + jQuery.browser.fullVersion, 10);  
        if (isNaN(jQuery.browser.majorVersion)) {  
            jQuery.browser.fullVersion = ‘‘ + parseFloat(navigator.appVersion);  
            jQuery.browser.majorVersion = parseInt(navigator.appVersion, 10);  
        }  
        jQuery.browser.version = jQuery.browser.majorVersion;  
    })(jQuery);  

另外网上也有另一个插件,原理是一样的。本人没有测试过,先记录在这里吧:

    jQuery.extend({  
        browser: function()   
        {  
            var  
            rwebkit = /(webkit)\/([\w.]+)/,  
            ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,  
            rmsie = /(msie) ([\w.]+)/,  
            rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,      
            browser = {},  
            ua = window.navigator.userAgent,  
            browserMatch = uaMatch(ua);  
      
            if (browserMatch.browser) {  
                browser[browserMatch.browser] = true;  
                browser.version = browserMatch.version;  
            }  
            return { browser: browser };  
        },  
    });  
      
    function uaMatch(ua)   
    {  
            ua = ua.toLowerCase();  
      
            var match = rwebkit.exec(ua)  
                        || ropera.exec(ua)  
                        || rmsie.exec(ua)  
                        || ua.indexOf("compatible") < 0 && rmozilla.exec(ua)  
                        || [];  
      
            return {  
                browser : match[1] || "",  
                version : match[2] || "0"  
            };  
    }  

下载地址:地址1

    文章来自:http://fanshuyao.iteye.com/blog/2312963

jquery判断浏览器版本插件,jquery-browser.js

标签:ret   safari   explorer   height   code   tor   fse   下载   set   

原文地址:http://www.cnblogs.com/webqiand/p/6624752.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!