13

Próbuję wykonać skrypt, który powinien działać tylko w przeglądarkach 64-bitowych Chrome. Czy istnieje sposób sprawdzenia przy użyciu JavaScript, jeśli wersja Chrome zainstalowana na komputerze użytkownika jest 64-bitowa lub 32-bitowa? t powinno być zależne od przeglądarki, ponieważ na przykład uruchamiam 64-bitowy system operacyjny i 32-bitową wersję przeglądarki Chrome.Wykryj, czy instalacja przeglądarki Chrome jest 64-bitowa

Do tej pory udało mi się wykryć, czy otwarta przeglądarka to Chrome i jaka jest jej wersja wykorzystująca Bowser. Ale wciąż zmagam się z wykrywaniem 64-bitowej przeglądarki.

+0

Może się okazać, że nie informacje w ciągu UA? – PeeHaa

+0

To jest przykład takiego napisu: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537,36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 a tu WOW64 punkty w wersji 32-bitowej, ale to dotyczy systemu Windows, a co z iOS i Linux? –

+0

Czy kiedykolwiek to rozgryzłeś? –

Odpowiedz

0

podstawie tego, co znalazłem, należy spróbować poszukuje następujących ciągów

  • x86_64
  • x86-64
  • Win64
  • 64; (Pamiętaj średnik! Bez niego trzeba będzie fałszywie dodatnich).
  • amd64
  • AMD64
  • WOW64
  • x64_64
+1

Czy jesteś pewien, że nie chodzi o to, czy platforma (tj. System operacyjny) jest 64-bitowa? –

+0

dla mnie, "x64" pojawił się po aktualizacji, Win64 już tam był. – dandavis

+0

WOW64 to tryb 32-bitowy w systemie Windows. –

5

Dla obszernej dyskusji na ten temat, patrz

Najważniejsze jest to, że nieruchomość, której szukasz, to navigator.platform, która zwraca platformę przeglądarki, a nie system operacyjny.

Możesz także rzucić okiem na platform.js, bibliotekę wykrywania platformy.

EDIT

Po patrząc na to dalej, wydaje się, że podczas navigator.platform powinien odzwierciedlać platformę przeglądarki, rzeczywista wartość zwracana nie zawsze jest przydatna.

Na przykład w systemie Windows obie wersje 32-bitowe i 64-bitowe zwracają "Win32". W takim przypadku ciąg agenta użytkownika ma lepszą wartość: WOW64 dla przeglądarki 32-bitowej lub x64 dla wersji 64-bitowej.

Ostatecznie wydaje się, że lepszym rozwiązaniem jest poleganie na listach kanonicznych, jak w połączonych pytaniach, lub użycie biblioteki takiej jak platforma.js.

+0

navigator.platform odnosi się do systemu operacyjnego, prawda, a nie wersja Chrome? Spojrzałem na platform.js i po prostu wybieram również ciąg userAgent. Naprawdę denerwującym problemem jest to, że jeśli przejdziesz na stronę "O stronie", to ma on wersję, a następnie "(64-bitowy)", jeśli jest to 64-bitowa wersja chrome. Ale ten dodatkowy bit w nawiasie nie jest dodawany do ciągu userAgent. –

+0

WOW64 jest w rzeczywistości bardzo cenną informacją - jeśli widzisz, wiesz, że OS jest 64-bitowy, a Chrome - 32-bitowy. W końcu udało mi się powiedzieć: "Jeśli widzimy WOW64, to jest to 32-bitowy chrom, w przeciwnym razie 1) czy jest to Windows?" Jeśli jest to Windows, możemy zobaczyć 64 w części OS? Jeśli tak, to 64-bitowy chrom. to jest 32-bitowy chrom 2) Czy to Mac? Nie tak łatwo powiedzieć na mac ... " –

+0

Daję nagrodę za tę odpowiedź, ponieważ wskazywała ona na WOW64, który był kluczem. Muszę trochę poprawić kod, a następnie zamieścić własną odpowiedź, w tym funkcje js. –

-1

navigator.userAgent containes "WOW64" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537,36 (KHTML, like Gecko) Chrome/43.0.2357.65 Safari/537,36"

+0

Zobacz powyższą odpowiedź użytkownika askera [komentarz] (http://stackoverflow.com/questions/27188292/detect-if-chrome-browser-installation-is-64-bit#comment-42864555). –

Powiązane problemy