2011-02-04 20 views
33

Opracowuję rozszerzenie do Chrome i zastanawiam się, czy istnieje sposób, dzięki któremu mogę wykryć, której wersji Chrome używa użytkownik?Jak wykryć zainstalowaną wersję Chrome?

+0

Dlaczego chcesz to wiedzieć? A ponieważ Chrome jest open source, możesz zmienić to na dowolne, zanim zaczniesz budować. –

+0

Wyszukiwarka Google (niebędąca funkcją natychmiastową) w przeglądarce Chrome 9 w pierwszym zapytaniu korzysta z technologii AJAX. To łamie moje przedłużenie. – Skizit

Odpowiedz

80

Get główną wersję Chrome jako liczba całkowita:

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

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

zaktualizowałem oryginalną odpowiedź, tak aby nie rzucać wyjątek w innych przeglądarkach, a nie korzysta z nieaktualnych funkcji.

Można również ustawić w manifeście minimum_chrome_version, aby użytkownicy z starszymi wersjami go nie instalowali.

+0

Jak mogę to zrobić int? Konieczność wykonania porównania .. np. 'If (Wersja <9)' – Skizit

+0

@Skizit zobacz aktualizację – serg

+4

Nie zaleca się używania aplikacji. Zobacz: https://developer.mozilla.org/en-US/docs/Web/API/NavigatorID.appVersion –

1

Oto wersja, oparta na odpowiedź od @serg, że wydobywa wszystkie elementy liczby wersji:

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] 
    }; 
} 

Nazywanie elementów w obiekcie, który jest zwracany jest oparty na this konwencja, ale możesz oczywiście dostosować ją do opartej na this.

Powiązane problemy