如何检测已安装的Chrome版本?

Ski*_*zit 43 javascript google-chrome google-chrome-extension

我正在开发Chrome扩展程序,我想知道有哪种方法可以检测用户使用的是哪个版本的Chrome?

ser*_*erg 104

将Chrome的主要版本作为整数获取:

function getChromeVersion () {     
    var raw = navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);

    return raw ? parseInt(raw[2], 10) : false;
}
Run Code Online (Sandbox Code Playgroud)

我已经更新了原始答案,因此它不会在其他浏览器中引发异常,也不会使用已弃用的功能.

您还可以minimum_chrome_version在清单中设置不允许使用旧版本的用户安装它.

  • 建议不要使用appVersion.请参阅:https://developer.mozilla.org/en-US/docs/Web/API/NavigatorID.appVersion (4认同)
  • 实际上,parseInt(raw [2])是正确的,因为match返回位置0处的完整匹配字符串. (3认同)

drm*_*wer 7

这是一个基于@serg 的答案的版本,它提取了版本号的所有元素:

function getChromeVersion () {
    var pieces = navigator.userAgent.match(/Chrom(?:e|ium)\/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/);
    if (pieces == null || pieces.length != 5) {
        return undefined;
    }
    pieces = pieces.map(piece => parseInt(piece, 10));
    return {
        major: pieces[1],
        minor: pieces[2],
        build: pieces[3],
        patch: pieces[4]
    };
}
Run Code Online (Sandbox Code Playgroud)

在返回的对象中的元素的命名是根据这个惯例,虽然你当然可以适应它是基于这个来代替。