浏览器探测

不同浏览器对Web标准的支持程度不同,需要进行浏览器探测以提供兼容方案。

主流浏览器内核

浏览器 内核 JS引擎
Chrome/Edge Blink V8
Firefox Gecko SpiderMonkey
Safari WebKit JavaScriptCore
Opera Blink V8
IE Trident Chakra

浏览器版本探测

// 获取浏览器类型和版本
function getBrowserInfo() {
    const ua = navigator.userAgent;
    let browser = '';
    let version = '';

    // Chrome
    if (/Chrome\/(\d+)/i.test(ua)) {
        browser = 'Chrome';
        version = ua.match(/Chrome\/(\d+)/i)[1];
    } 
    // Safari
    else if (/Version\/(\d+).*Safari/i.test(ua)) {
        browser = 'Safari';
        version = ua.match(/Version\/(\d+)/i)[1];
    }
    // Firefox
    else if (/Firefox\/(\d+)/i.test(ua)) {
        browser = 'Firefox';
        version = ua.match(/Firefox\/(\d+)/i)[1];
    }
    // Edge
    else if (/Edg\/(\d+)/i.test(ua)) {
        browser = 'Edge';
        version = ua.match(/Edg\/(\d+)/i)[1];
    }
    // IE
    else if (/MSIE (\d+)/i.test(ua)) {
        browser = 'IE';
        version = ua.match(/MSIE (\d+)/i)[1];
    }

    return { browser, version };
}

// 使用特征检测替代浏览器检测
const supportsES6 = typeof Symbol !== 'undefined';
const supportsAsync = typeof fetch === 'function';
const supportsPromises = typeof Promise !== 'undefined';
← Device Detection Device Difference →