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

一、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

转载于:https://www.cnblogs.com/webqiand/p/6624752.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值