Necesito detectar no solo el tipo de navegador, sino también la versión usando jQuery. Principalmente necesito averiguar si es IE 8 o no.
No estoy seguro de si lo estoy haciendo correctamente.
Si lo hago :
if (jQuery.browser.version >= 8.0) {
dosomething}
No estoy seguro de que funcione para la versión 8.123.45.6, ¿o sí?
Editar: tenga en cuenta que JQuery 2+ ha dejado de admitir IE8 y versiones anteriores y, por lo tanto, ya no se puede usar para detectar IE8. Si usa una versión actual de JQuery, es necesario usar una solución que no sea JQuery.
javascript
jquery
salmane
fuente
fuente
jquery.support.opacity
solo hizo lo que quería. Gracias ...jQuery.browser
, no necesite una biblioteca adicional como Modernizr y no requiera editar el HTML (por lo que es adecuado para complementos, etc.) ...Respuestas:
Está documentado en la documentación de la API de jQuery . Busque Internet Explorer con
$.browser.msie
y luego verifique su versión con$.browser.version
.ACTUALIZACIÓN: $ .browser eliminado en jQuery 1.9
fuente
if(jQuery.browser.version.substring(0, 2) == "8.") { ... }
. De esa forma, funcionará con todas las versiones de IE8.jQuery.browser
quedó obsoleto en la versión 1.3 y es posible que se cambie a un complemento en el futuro. Consulte los documentos de jQuery.browserCreo que la mejor forma sería esta:
De HTML5 boilerplate:
en JS:
especialmente desde que
$.browser
se ha eliminado de jQuery 1.9+.fuente
lt-ie9
AOTie8
<html>
lugar de<body>
?Esto debería funcionar para todas las versiones menores de IE8
- actualizar
Tenga en cuenta que $ .browser se elimina de jQuery 1.9
fuente
No olvide que también puede usar HTML para detectar IE8.
Tener eso antes de todos sus scripts le permitirá verificar la variable "ie" o lo que sea.
fuente
document.documentMode no está definido si el navegador no es IE8,
devuelve 8 para el modo estándar y 7 para 'compatible con IE7'
Si se ejecuta como IE7, hay muchas funciones css y dom que no serán compatibles.
fuente
if ((document.documentMode || 100) < 9) { // IE8
0
mientras se carga la página: "intente determinar el modo de compatibilidad del documento en otro momento" (es decir, después de que el documento esté listo).Asumiendo...
<body>
o<html>
)... entonces este es probablemente el mejor truco (basado en esta variante que no es de jQuery, un poco menos flexible ). Crea, luego prueba y luego elimina un comentario condicional apropiado.
(Los comentarios condicionales se ignoran en IE10 + 'modo estándar', ¡pero eso debería estar bien ya que IE10 + 'modo estándar' no tiene un motor de renderizado loco!)
Suelta esta función:
Entonces úsalo así:
También sugiero almacenar en caché los resultados de esta función para que no tenga que repetirla. Por ejemplo, puede usar la cadena
(comparison||'')+' IE '+(version||'')
como clave para almacenar y verificar el resultado de esta prueba en un objeto en algún lugar.fuente
Nota:
1) $ .browser parece haberse eliminado en jQuery 1.9+ (como lo señaló Mandeep Jain). Se recomienda utilizar .support en su lugar.
2) $ .browser.version puede devolver "7" en IE> 7 cuando el navegador está en modo "compatibilidad".
3) A partir de IE 10, los comentarios condicionales dejarán de funcionar.
4) jQuery 2.0+ dejará de ser compatible con IE 6/7/8
5) document.documentMode parece estar definido solo en los navegadores Internet Explorer 8+. El valor devuelto le dirá en qué modo de "compatibilidad" se está ejecutando Internet Explorer. Aunque todavía no es una buena solución.
Probé numerosas opciones .support (), pero parece que cuando un navegador IE (9+) está en modo de compatibilidad, simplemente se comportará como IE 7 ... :(
Hasta ahora solo encontré que esto funciona (tipo a):
(si documentMode no está definido y htmlSerialize y opacity no son compatibles, entonces es muy probable que esté mirando IE <8 ...)
fuente
Si juegas con las versiones del navegador, muy a menudo no se obtiene nada bueno. No quiere implementarlo usted mismo. Pero puedes Modernizr hecho por Paul Irish y otras personas inteligentes. Detectará lo que el navegador realmente puede hacer y colocará las clases apropiadas en el
<html>
elemento. Sin embargo, con Modernizr , puede probar la versión de IE de esta manera:De manera similar, puede usar
.lt-ie8
y.lt-ie7
.fuente
También debería mirar jQuery.support . La detección de funciones es mucho más confiable que la detección del navegador para codificar su funcionalidad (a menos que solo esté intentando registrar las versiones del navegador).
fuente
Puede detectar fácilmente qué tipo y versión del navegador, usando este jquery
fuente
Aquí está el complemento de detección de navegador Jquery para identificar la detección del navegador / sistema operativo.
Puede usar esto para fines de estilo después de incluir el complemento.
fuente
Puede usar $ .browser para detectar el nombre del navegador. los valores posibles son:
u obtenga una bandera booleana: $ .browser.msie será verdadero si el navegador es MSIE.
en cuanto al número de versión, si solo está interesado en el número de versión principal, puede usar parseInt ($. browser.version, 10). no es necesario analizar la cadena $ .browser.version usted mismo.
De todos modos, la propiedad $ .support está disponible para detectar soporte para características particulares en lugar de depender de $ .browser.
fuente