2016-04-07 19 views
0

Bu kötü bir uygulama olduğunu biliyorum ve özellik tanıma web sitesi oluşturma açısından gitmek için yolu olmalıdır. Ancak bu benim kullanım durumum değil.Kullanıcılar tarayıcı istemci tarafını nasıl tespit edebilirim?

Tarayıcı uzantımın farklı dağılımlarına sahibim ve indirme düğmesini geçerli tarayıcılarına göre değiştirmek istiyorum.

Çoğu tarayıcıların tüm popüler kullanıcı aracılarını ayarladığı için oldukça yararsız olduğu kanıtlanmış olan navigator.userAgent'u kullanmayı denedim. Örneğin, bu krom var.

navigator.userAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36" 

Birçok web sitesinin bu düğmelerin karşıdan yükleme düğmelerinde olduğunu gördüm. Bu nasıl düzgün yapılır?

DÜZENLEME: Artık "Mozzila/X.X" in neden userAgent dizesinin başlangıcının tarihini öğrendim. Yanlış anlaşılma için özür dilerim.

+0

Bu nasıl işe yarar? Chrome "Chrome" diyor ... userAgents yeterli, sadece dikkat etmeniz gerekiyor. – dandavis

+0

daha açık olabilirler, itiraf edeceğim. en yaygın olan "Safari" ve "Chrome". "Chrome" varsa, bu safari değil, bunu halledin ve gerisini yarı kolay. – dandavis

+0

@dandavis, Mozilla'nın firefox'u kastettiğini varsayıyordum. Şimdi bunun olmadığını görüyorum. Yanıtı kabul eden – peso

cevap

1

Tarayıcıları çok yönlü olarak algılayabilirsiniz. Chrome için

arayla navigator.userAgent üzerinde bir normal ifade yapmaktan: Sana daha detaylı bilgi için this answer görmek önermek

var isChrome = !!window.chrome && !!window.chrome.webstore; 

:

var isChrome = /Chrome/.test(navigator.userAgent); 

Ayrıca bir kontrol yapabilirsiniz. Tarayıcı algılaması için Modernizr.js kullanmayı da düşünmelisiniz.

+0

korkunç ... tarayıcı başka bir şekilde kokuyor. daha az güvenilir bir şekilde; Bir sürüm güncellemesi veya dikkatsiz bir komut dosyasıyla sona erebilen ortak yan etkiler arıyor ... – dandavis

+0

Ayrıca bu uygulamayı sevmiyorum. Bana göre bir tarayıcı tespit etmenin en sağlam yolunun [Modernizr.js] (https://modernizr.com/) belgesine güvenmesi gerekiyor. Aksi takdirde, kalan çözümler "navigator.appName", "navigator.appVersion" ve "navigator.userAgent" veya bu çirkin hackler üzerinde regex'dir. –

+0

Neden devlerin userAgent görevini reddetmek için hızlı olduğunu görmüyorum; Tam olarak kullanılması gereken şey. Kullanıcıların% 0,02'si kendi değerini değiştirirse, öyle olsun; JS'yi de devre dışı bırakabilirler, yani WTH. savaşını seç. – dandavis