Я разрабатываю расширение Chrome, и мне интересно, есть ли способ определить, какая версия Chrome используется пользователем?
Как определить установленную версию Chrome?
Ответ 1
Получить основную версию Chrome как целого:
function getChromeVersion () {
var raw = navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);
return raw ? parseInt(raw[2], 10) : false;
}
Я обновил исходный ответ, чтобы он не генерировал исключение в других браузерах и не использовал устаревшие функции.
Вы также можете установить minimum_chrome_version
в манифесте, чтобы не позволить пользователям со старыми версиями устанавливать его.
Ответ 2
Вот версия, основанная на ответе от @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 вместо этого.