2011-02-04 84 views
33

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

+0

为什么你想知道这个?而且,由于Chrome是开源的,您可以在构建之前将其更改为任何想要的内容。 – 2011-02-04 16:38:06

+0

第一次查询时,Chrome 9上的Google搜索(非即时)使用AJAX。这打破了我的扩展。 – Skizit 2011-02-04 16:39:31

回答

80

获取Chrome浏览器的主版本号为整数:

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

    return raw ? parseInt(raw[2], 10) : false; 
} 

我已经更新了原来的答案,所以它不扔在其他浏览器的异常,并且不使用建议使用的功能。

您还可以在清单中设置minimum_chrome_version以避免使用旧版本的用户安装它。

1

这里是一个版本的基础上,从@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] 
    }; 
} 

返回,在对象中的元素的命名是基于this大会,尽管你当然可以修改它,而不是基于this

相关问题