判断浏览器类型及版本

325 阅读1分钟

语言

typescript

代码

判断浏览器类型及版本

export interface BrowerModel{
    version:string;
    browerCore:string;
}


 static TestBrower(): BrowerModel {

        let ua = navigator.userAgent.toLowerCase();
        let s = ua.match(/edge\/([\d.]+)/);

        if (s) { //edge
            let version = s[1].split('.');
            return { version: version[0], browerCore: 'edge' }
        }
        s = ua.match(/rv:([\d.]+)\) like gecko/);
        if (s) { //ie
            let version = s[1].split('.');
            return { version: version[0], browerCore: 'ie' }
        }
        s = ua.match(/msie ([\d.]+)/);
        if (s) { //ie
            let version = s[1].split('.');
            return { version: version[0], browerCore: 'ie' }
        }
        s = ua.match(/firefox\/([\d.]+)/);
        if (s) { //firefox
            let version = s[1].split('.');
            return { version: version[0], browerCore: 'firefox' }
        }
        s = ua.match(/chrome\/([\d.]+)/);
        if (s) { //chrome
            let version = s[1].split('.');
            if (ua.indexOf('edg') > -1) {
                return { version: version[0], browerCore: 'edge' }
            }
            return { version: version[0], browerCore: 'chrome' }
        }
        s = ua.match(/opera.([\d.]+)/);
        if (s) { //opera
            let version = s[1].split('.');
            return { version: version[0], browerCore: 'opera' }
        }
        s = ua.match(/version\/([\d.]+).*safari/);
        if (s) { //safari
            return { version: s[1], browerCore: 'safari' }
        }
        return { version: '', browerCore: 'unknown' }
    }
    

判断设备类型

/** * 是否为mac系统(包含iphone手机) * */
    static isMac(): boolean {
        return /macintosh|mac os x/i.test(navigator.userAgent);
    }