美文网首页工作总结
JS获取浏览器类型、信息 封装

JS获取浏览器类型、信息 封装

作者: 轩轩小王子 | 来源:发表于2019-02-16 19:51 被阅读0次
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: "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();

相关文章

网友评论

    本文标题:JS获取浏览器类型、信息 封装

    本文链接:https://www.haomeiwen.com/subject/aauieqtx.html