2009-12-22 9 views
20
$(window).load(function() { 
    if($.browser.msie && $.browser.version=="6.0") { 
    // do stuff 
    } 
}); 

di cuenta de que $ .browser se ha depreciado en 1.3. ¿Cuál es el nuevo método para detectar IE, especialmente IE6?IE usando jQuery

+2

'jQuery.browser' no está desaprobado.A pesar de que jQuery ya no lo usa internamente, está disponible para los scripts de los usuarios por un futuro indefinido: http://docs.jquery.com/Utilities/jQuery.browser –

+0

La documentación dice "Obsoleto en jQuery 1.3 (ver' jQuery.support') El número de versión del motor de representación para el navegador del usuario ". – kiamlaluno

+1

* La detección de funciones * es mucho mejor que * el rastreo del navegador *, ¿qué intentas lograr cuando tu página es renderizada por IE6? – CMS

Respuesta

19

El jQuery documentation for jQuery.browser muestra la advertencia siguiente. (El subrayado es mío.)

Debido $.browser utiliza navigator.userAgent para determinar la plataforma, es vulnerable a la suplantación de identidad por parte del usuario o tergiversación por el navegador sí. Siempre es mejor evitar el código específico del navegador por completo siempre que sea posible. En lugar de confiar en $.browser es mejor usar bibliotecas como Modernizr.

La página de documentación también dice:

Esta propiedad fue eliminado en jQuery 1.9 y está disponible sólo a través del plug-in jQuery.migrate. Intente utilizar detección de características en su lugar.

Incluso jQuery.support, que se sugirió en la documentación anterior tiene la siguiente advertencia. (Énfasis es mío.)

Una colección de propiedades que representan la presencia de diferentes funciones o errores del navegador. Diseñado para el uso interno de jQuery; las propiedades específicas se pueden eliminar cuando ya no se necesitan internamente para mejorar el rendimiento de inicio de la página. Para las necesidades función de detección de su propio proyecto, recomendamos encarecidamente el uso de una biblioteca externa como Modernizr en lugar de la dependencia de las propiedades en jQuery.support.

La documentación anterior para jQuery.support informó las siguientes propiedades y valores.

  • $.support.boxmodel es false en IE 6 y 7.
  • $.support.cssFloat es false para IE 6, 7 y 8; es true en IE 9.
  • $.support.leadingWhitespace es false para IE 6, 7 y 8.
  • $.support.objectAll este momento false para IE 6, 7 y 8.
+2

Solo para todos los demás que encuentran este comentario, $ .support.cssFloat es falso para IE 6, 7 y 8. En IE 9 es cierto. – Nemke

+0

Sé que esta respuesta es algo antigua, pero la depuración en IE9 con el modo de navegador IE7 tiene $ .support.boxModel === true. Tal vez es porque estoy usando un modo de navegador en IE9 ?? – kand

6

caliente de la documentación: Nosotros No recomendar el uso de esta propiedad; intente utilizar la detección de características en su lugar (consulte jQuery.support).

1

pueden mostrar el navegador de Información

jQuery.each(jQuery.browser, function(i, val) { 
$("<div>" + i + " : <span>" + val + "</span>") 
.appendTo(document.body); 
}); 

Alerta la versión del motor de renderizado de IE que se utiliza. No funcionará en jQuery 1.9 o posterior a menos que se incluya el complemento jQuery Migrate.

if ($.browser.msie) { 
alert($.browser.version); 
} 
Cuestiones relacionadas