超级悠悠
高性能程序定制、UI定制
616476

访问

5

评论

20

动态

2117

运行

来过
设计群: 70888820
位置: luzhou·sichuan

- 今日签到 -

今日暂无签到

首页破碎代码前端Ts获取操作系统信息和浏览器信息

前端Ts获取操作系统信息和浏览器信息

评论 0/访问 437/分类: 破碎代码/发布时间:

方法源码

/**
 * 获取系统和浏览器信息
 */
export function getOSAndBrowserInfo() {
    const userAgent = navigator.userAgent
    let osName = 'unknown'
    let osVersion = 'unknown'
    let browserName = 'unknown'
    let browserVersion = 'unknown'
    //获取操作系统信息
    if (userAgent.indexOf('Mac OS X') !== -1) {
        osName = 'macOS'
        const regex = /Mac OS X (\d+[_.]\d+[_.]?\d*)/.exec(userAgent)
        if (regex !== null && regex.length > 1) {
            osVersion = regex[1].replace(/_/g, '.')
        }
    } else if (userAgent.indexOf('Windows NT') !== -1) {
        osName = 'Windows'
        const regex = /Windows NT (\d+\.\d+)/.exec(userAgent)
        if (regex !== null && regex.length > 1) {
            osVersion = regex[1]
        }
    }
    //获取浏览器信息
    if (/Edg\//.test(userAgent)) {
        browserName = 'Microsoft Edge'
        const regex = /Edg\/(\d+\.\d+)/.exec(userAgent)
        if (regex !== null && regex.length > 1) {
            browserVersion = regex[1]
        }
    } else if (/Firefox\//.test(userAgent)) {
        browserName = 'Firefox'
        const regex = /Firefox\/(\d+\.\d+)/.exec(userAgent)
        if (regex !== null && regex.length > 1) {
            browserVersion = regex[1]
        }
    } else if (/Chrome\//.test(userAgent)) {
        browserName = 'Google Chrome'
        const regex = /Chrome\/(\d+\.\d+)/.exec(userAgent)
        if (regex !== null && regex.length > 1) {
            browserVersion = regex[1]
        }
    } else if (/Safari\//.test(userAgent)) {
        browserName = 'Safari'
        const regex = /Version\/(\d+\.\d+)/.exec(userAgent)
        if (regex !== null && regex.length > 1) {
            browserVersion = regex[1]
        }
    }
    return {
        osName,
        osVersion,
        browserName,
        browserVersion
    }
}

使用示例

//获取操作系统信息和浏览器信息
const uaAndOs = getOSAndBrowserInfo()
//操作系统信息
console.log(uaAndOs.osName + uaAndOs.osVersion)
//浏览器信息
console.log(uaAndOs.browserName + uaAndOs.browserVersion)

收藏

点赞

打赏