Chociaż obie są przeglądarkami opartymi na Webkit, Safari urlencodes w adresie URL, podczas gdy Chrome nie.
Dlatego muszę rozróżnić te dwa w JS.
Dokumenty jQuery dotyczące wykrywania przeglądarki oznaczają „safari” jako przestarzałe.
Czy istnieje lepsza metoda, czy na razie po prostu trzymam się przestarzałej wartości?
javascript
jquery
browser-detection
AndreKR
źródło
źródło
$.browser.safari === true
. eeek.Odpowiedzi:
Używając kombinacji
feature detection
iUseragent
string:Stosowanie:
if (is_safari) alert('Safari');
Lub tylko dla Safari, użyj tego:
źródło
(Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36)
Poniższe informacje identyfikują przeglądarkę Safari 3.0+ i odróżniają ją od Chrome:
źródło
niestety powyższe przykłady również wykryją domyślną przeglądarkę Androida jako Safari, którą nie jest. użyłem
navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1 && navigator.userAgent.indexOf('Android') == -1
źródło
Do sprawdzenia Safari użyłem tego:
Działa poprawnie.
źródło
Najwyraźniej jedynym niezawodnym i akceptowanym rozwiązaniem byłoby wykrywanie funkcji w następujący sposób:
źródło
Jedyny sposób, jaki znalazłem, to sprawdzenie, czy navigator.userAgent zawiera słowo iPhone lub iPad
źródło
Jeśli sprawdzasz przeglądarkę użyj
$.browser
. Ale jeśli sprawdzasz obsługę funkcji (zalecane), użyj$.support
.NIE powinieneś używać $ .browser do włączania / wyłączania funkcji na stronie. Powodem jest to, że nie jest to niezawodne i generalnie nie jest zalecane.
Jeśli potrzebujesz wsparcia funkcji, polecam modernizr .
źródło
location.hash = '"blah"'; if (location.hash == '#%22blah%22') alert('is Safari');
?http://jsfiddle.net/s1o943gb/10/
źródło
Bardzo użytecznym sposobem rozwiązania tego problemu jest wykrycie wersji webkita przeglądarki i sprawdzenie, czy jest to przynajmniej ta, której potrzebujemy, w przeciwnym razie zrób coś innego.
Używając jQuery wygląda to tak:
Zapewnia to bezpieczne i trwałe rozwiązanie problemów z różnymi implementacjami webkitów przeglądarki.
Miłego kodowania!
źródło
To określi, czy przeglądarka to Safari, czy nie.
źródło
źródło
Używam do wykrywania silnika przeglądarki Apple, tego prostego warunku JavaScript:
źródło
FUNKCJA Ogólna
źródło