Quiero enviar a los usuarios de nuestro sitio web a una página de error si están utilizando una versión Internet Explorer
anterior a la v9. Simplemente no vale la pena nuestro tiempo y dinero para apoyar IE pre-v9
. Los usuarios de todos los otros navegadores que no son IE están bien y no deben ser devueltos. Aquí está el código propuesto:
if(navigator.appName.indexOf("Internet Explorer")!=-1){ //yeah, he's using IE
var badBrowser=(
navigator.appVersion.indexOf("MSIE 9")==-1 && //v9 is ok
navigator.appVersion.indexOf("MSIE 1")==-1 //v10, 11, 12, etc. is fine too
);
if(badBrowser){
// navigate to error page
}
}
¿Este código hará el truco?
Para evitar algunos comentarios que probablemente vendrán en mi camino:
- Sí, sé que los usuarios pueden forjar su
useragent
cadena. No estoy preocupado - Sí, sé que los profesionales de la programación prefieren detectar el soporte de características en lugar del tipo de navegador, pero no creo que este enfoque tenga sentido en este caso. Ya sé que todos los navegadores (relevantes) que no son IE admiten las características que necesito y que no todos los
pre-v9 IE
navegadores lo hacen. Verificar una característica por característica en todo el sitio sería un desperdicio. - Sí, sé que alguien que intente acceder al sitio usando
IE v1
(o> = 20) no establecería 'badBrowser' en verdadero y la página de advertencia no se mostraría correctamente. Ese es un riesgo que estamos dispuestos a correr. - Sí, sé que Microsoft tiene "comentarios condicionales" que pueden usarse para la detección precisa de la versión del navegador. IE ya no admite comentarios condicionales
IE 10
, lo que hace que este enfoque sea absolutamente inútil.
¿Algún otro problema obvio a tener en cuenta?