Aunque ambos son navegadores basados en Webkit, Safari urlencodes comillas en la URL, mientras que Chrome no.
Por lo tanto, necesito distinguir entre estos dos en JS.
Los documentos de detección del navegador de jQuery marcan "safari" como obsoleto.
¿Existe un método mejor o simplemente me quedo con el valor obsoleto por ahora?
javascript
jquery
browser-detection
AndreKR
fuente
fuente
$.browser.safari === true
. eeek.Respuestas:
El uso de una mezcla de
feature detection
yUseragent
cadena:Uso:
if (is_safari) alert('Safari');
O solo para Safari, use esto:
fuente
(Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36)
Lo siguiente identifica Safari 3.0+ y lo distingue de Chrome:
fuente
desafortunadamente, los ejemplos anteriores también detectarán el navegador predeterminado de Android como Safari, que no es así. solía
navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1 && navigator.userAgent.indexOf('Android') == -1
fuente
Para comprobar Safari utilicé esto:
Funciona correctamente.
fuente
Aparentemente, la única solución confiable y aceptada sería realizar una detección de características como esta:
fuente
La única forma que encontré es verificar si navigator.userAgent contiene la palabra iPhone o iPad
fuente
Si está comprobando el uso del navegador
$.browser
. Pero si está comprobando el soporte de funciones (recomendado), utilice$.support
.NO debe usar $ .browser para habilitar / deshabilitar funciones en la página. La razón es que no es confiable y generalmente no se recomienda.
Si necesita compatibilidad con funciones, le recomiendo modernizr .
fuente
location.hash = '"blah"'; if (location.hash == '#%22blah%22') alert('is Safari');
?http://jsfiddle.net/s1o943gb/10/
fuente
Una forma muy útil de solucionar esto es detectar la versión del webkit del navegador y comprobar si es al menos la que necesitamos, de lo contrario, hacer otra cosa.
Usando jQuery es así:
Esto proporciona una solución segura y permanente para solucionar problemas con las diferentes implementaciones de webkit del navegador.
¡Feliz codificación!
fuente
Esto determinará si el navegador es Safari o no.
fuente
fuente
Utilizo para detectar el motor del navegador de Apple, esta simple condición de JavaScript:
fuente
FUNCION Genérica
fuente