official - Detecta Internet Explorer 6 o inferior en jQuery
library jquery (13)
Soy nuevo en jquery y me preguntaba: ¿es una forma simple de detectar si un navegador es Internet Explorer 6 o inferior?
Probar esto:
jQuery.each(jQuery.browser, function(i, val) {
$("<div>" + i + " : <span>" + val + "</span>")
.appendTo(document.body);
});
si necesita más información, consulte esto:
jQuery busca características, en lugar de "navegadores". Dicho esto, puede usar el método jQuery.support para detectar de qué es capaz el navegador de los usuarios.
Métodos obsoletos (no usar)
- $ .browser
- $ .browser.version
- $ .boxModel
http://docs.jquery.com/Utilities/jQuery.support le proporcionará un resumen de las características compatibles con cada navegador. Tomando esa información, desarrollará un par de verificaciones condicionales para determinar si el navegador que se utiliza es su navegador de destino o no.
Muy buena forma de detectar IE es:
if (''v''==''/v'') {
welcome to IE ))
}
Desafortunadamente no puede reconocer su versión, pero no siempre es nessecary.
También puede solicitar IE directamente.
<!--[if lte IE 6]>
<script type="text/javascript">
var isRunningIE6OrBelow = true;
</script>
<![endif]-->
Además, otro buen punto es que con JQuery, no debes preocuparte por la versión.
Sin embargo, eso no ayuda si está usando jquery para arreglar un error de renderizado IE6 css.
"Si bien es poco probable que se elimine jQuery.browser, se deben realizar todos los esfuerzos para utilizar jQuery.support y la detección adecuada de características".
Entonces digo que adelante y lo use. Deben mantener compatibilidad hacia atrás con scripts que aún usan el método de detección de agente de usuario.
A menudo comprobo la versión de un navegador. El método .support es genial, pero realmente no ayuda cuando necesita ocultar selecciones cuando hay una superposición. No hay "selecciones de soporte son controles de ventana". Solo necesita comprobar la versión del navegador, por lo que diría que se equivoque hacia el método .support donde pueda, y use el .browser cuando sea necesario.
http://docs.jquery.com/Utilities/jQuery.browser.version es cómo
EDITADO: Enlace corregido de Douglas
http://api.jquery.com/jQuery.browser/#jQuery.browser.version
Quiero decir, si tuvieras la versión anterior no la última 1.3 ...
Además, otro buen punto es que con JQuery, no debes preocuparte por la versión. JQuery ofrece pruebas de características y maneja todo eso malarky para usted. Preocuparse por las versiones y plataformas es bonito 1999
Solo para que la gente sepa $ .browser.msie && /6.0/.test(navigator.userAgent) no es confiable, he llegado a esta pregunta buscando una respuesta a un problema con JQuery bgiframe que se rompe en mi máquina porque tener ''Media Center PC 6.0'' en mi cadena navigator.userAgent. Ahora edité la fuente para usar la prueba $ browser.version.
Es tonto de JQuery desaprobar estas pruebas de navegador porque, por feas que sean, son necesarias para lidiar con el feo estado del ecosistema del navegador.
siempre usé esta solución
http://sinfinity.pl/blog/2012/02/12/detect-internet-explorer-and-browser-version-in-jquery/
if ($.browser.msie && parseInt($.browser.version, 10) <= 6) {
alert("I''m not dead yet!");
}
- actualización
Por favor, no se elimine $ .browser de jQuery 1.9
Tan simple como esto:
if($.browser.msie && $.browser.version=="6.0") alert("Im the annoying IE6");
Actualizar
Tenga en cuenta que $ .browser se elimina de jQuery 1.9
Si aún necesita usar $ .browser en jQuery 1.9 (u otras funciones en desuso), intente jQuery-migrate ( https://github.com/jquery/jquery-migrate/ - http://code.jquery.com/jquery -migrate-1.2.1.js )
Si existe ActiveXObject
y XMLHttpRequest
no, es IE6:
/* IE6 Check */
(!!window.ActiveXObject && !window.XMLHttpRequest) ? true : false;
En IE7, sería:
(!!window.ActiveXObject && !!window.XMLHttpRequest) ? true: false;
Referencias