js判断浏览器决定引入jquery

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js判断浏览器决定引入jquery相关的知识,希望对你有一定的参考价值。

参考技术A 可以使用javascript的navigator对象来判断浏览器,然后根据不同的浏览器来决定是否引入jQuery。

例如:

if (navigator.userAgent.indexOf("MSIE") > 0)
// 加载jQuery
document.write('<script src="jquery.js"></script>');

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

以上是关于js判断浏览器决定引入jquery的主要内容,如果未能解决你的问题,请参考以下文章

js/jquery判断浏览器的方法小结

jQuery绑定事件on

jquery如何判断数组是不是为空?

JQuery

自己编写jQuery动态引入js文件插件 (jquery.import.dynamic.script)

JS19使用Jquery判断是电脑或手机或微信浏览器访问