浏览器检测(BrowserDetect.js)使用

浏览器检测是在工作中经常用到的,如果只是简单判断当前是什么浏览器的话可以通过window.navigator.useragent这样的js来直接判断就可以了!

但是针对浏览器版本要求比较高的时候,如果只是单纯的判断浏览器的名字的话还不能解决问题,这时候就要通过其他方式来实现!现有的jquery已经废弃了$.browser的使用,所以在这里我介绍一个叫做"浏览器嗅探器"的程序来实现!

代码如下:(BrowserDetect.js)

var BrowserDetect = {

    init: function () {

        this.browser = this.searchString(this.dataBrowser) || "An unknown browser";

        this.version = this.searchVersion(navigator.userAgent)

            || this.searchVersion(navigator.appVersion)

            || "an unknown version";

        this.OS = this.searchString(this.dataOS) || "an unknown OS";

    },

    searchString: function (data) {

        for (var i=0;i<data.length;i++)    {

            var dataString = data[i].string;

            var dataProp = data[i].prop;

            this.versionSearchString = data[i].versionSearch || data[i].identity;

            if (dataString) {

                if (dataString.indexOf(data[i].subString) != -1)

                    return data[i].identity;

            }

            else if (dataProp)

                return data[i].identity;

        }

    },

    searchVersion: function (dataString) {

        var index = dataString.indexOf(this.versionSearchString);

        if (index == -1) return;

        return parseFloat(dataString.substring(index+this.versionSearchString.length+1));

    },

    dataBrowser: [

        {

            string: navigator.userAgent,

            subString: "Chrome",

            identity: "Chrome"

        },

        {     string: navigator.userAgent,

            subString: "OmniWeb",

            versionSearch: "OmniWeb/",

            identity: "OmniWeb"

        },

        {

            string: navigator.vendor,

            subString: "Apple",

            identity: "Safari",

            versionSearch: "Version"

        },

        {

            prop: window.opera,

            identity: "Opera"

        },

        {

            string: navigator.vendor,

            subString: "iCab",

            identity: "iCab"

        },

        {

            string: navigator.vendor,

            subString: "KDE",

            identity: "Konqueror"

        },

        {

            string: navigator.userAgent,

            subString: "Firefox",

            identity: "Firefox"

        },

        {

            string: navigator.vendor,

            subString: "Camino",

            identity: "Camino"

        },

        {        // for newer Netscapes (6+)

            string: navigator.userAgent,

            subString: "Netscape",

            identity: "Netscape"

        },

        {

            string: navigator.userAgent,

            subString: "MSIE",

            identity: "Internet Explorer",

            versionSearch: "MSIE"

        },

        {

            string: navigator.userAgent,

            subString: "Gecko",

            identity: "Mozilla",

            versionSearch: "rv"

        },

        {         // for older Netscapes (4-)

            string: navigator.userAgent,

            subString: "Mozilla",

            identity: "Netscape",

            versionSearch: "Mozilla"

        }

    ],

    dataOS : [

        {

            string: navigator.platform,

            subString: "Win",

            identity: "Windows"

        },

        {

            string: navigator.platform,

            subString: "Mac",

            identity: "Mac"

        },

        {

               string: navigator.userAgent,

               subString: "iPhone",

               identity: "iPhone/iPod"

        },

        {

            string: navigator.platform,

            subString: "Linux",

            identity: "Linux"

        }

    ]



};

BrowserDetect.init();

使用方式如下:

BrowserDetect.browser;// 浏览器的名称,例如Firefox,IE

BrowserDetect.version;//浏览器的版本,比如,7、11

BrowserDetect.OS;//浏览器所宿主的操作系统,比如Windows、Linux

 这个js兼容非常不错!使用起来比较简单,而且功能强大!

你可能感兴趣的:(browser)