Bien que les deux soient des navigateurs Webkit, l'URL de Safari code des guillemets dans l'URL, contrairement à Chrome.
Par conséquent, je dois faire la distinction entre ces deux dans JS.
Les documents de détection de navigateur de jQuery marquent "safari" comme obsolète.
Existe-t-il une meilleure méthode ou est-ce que je m'en tiens simplement à la valeur obsolète pour le moment?
javascript
jquery
browser-detection
AndreKR
la source
la source
$.browser.safari === true
. eeek.Réponses:
En utilisant un mélange de
feature detection
et deUseragent
chaîne:Usage:
if (is_safari) alert('Safari');
Ou pour Safari uniquement, utilisez ceci:
la source
(Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36)
Ce qui suit identifie Safari 3.0+ et le distingue de Chrome:
la source
Malheureusement, les exemples ci-dessus détecteront également le navigateur par défaut d'Android comme Safari, ce qui n'est pas le cas. j'ai utilisé
navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1 && navigator.userAgent.indexOf('Android') == -1
la source
Pour vérifier Safari, j'ai utilisé ceci:
Cela fonctionne correctement.
la source
Apparemment, la seule solution fiable et acceptée serait de faire une détection de fonctionnalités comme celle-ci:
la source
Le seul moyen que j'ai trouvé est de vérifier si navigator.userAgent contient un mot iPhone ou iPad
la source
Si vous vérifiez l'utilisation du navigateur
$.browser
. Mais si vous vérifiez la prise en charge des fonctionnalités (recommandé), utilisez$.support
.Vous ne devez PAS utiliser $ .browser pour activer / désactiver les fonctionnalités de la page. La raison étant ce n'est pas fiable et généralement tout simplement déconseillée.
Si vous avez besoin d'une prise en charge des fonctionnalités, je recommande modernizr .
la source
location.hash = '"blah"'; if (location.hash == '#%22blah%22') alert('is Safari');
?http://jsfiddle.net/s1o943gb/10/
la source
Un moyen très utile de résoudre ce problème est de détecter la version du kit Web du navigateur et de vérifier si c'est au moins celle dont nous avons besoin, sinon de faire autre chose.
En utilisant jQuery, cela ressemble à ceci:
Cela fournit une solution sûre et permanente pour traiter les problèmes avec les différentes implémentations de Webkit du navigateur.
Bon codage!
la source
Cela déterminera si le navigateur est Safari ou non.
la source
la source
J'utilise pour détecter le moteur de navigateur Apple, cette simple condition JavaScript:
la source
FONCTION générique
la source