2011-10-14 22 views
5

Estoy tratando de implementar una función de soporte del navegador en mi página web. Para Firefox 3.6 está funcionando bien, pero por alguna razón el userAgent de IE 8 está devolviendo un valor incorrecto.¿Por qué IE 8 navigator.userAgent devuelve MSIE 7.0?

Aquí está el escenario, cuando ejecuto un código javascript 'local' en IE8, navigator.userAgent devuelve información correcta (MSIE 8.0). Pero cuando ejecuto este script en un servidor, devuelve MSIE 7.0 en un navegador IE 8.

¿Alguna idea?

+2

si está oliendo las aplicaciones del usuario, lo estás haciendo mal y que va a tener un montón de problemas por el estilo. debería usar detección de características, pero también podría simplemente configurar comentarios condicionales para ie7 y ie8 y cambiar algunos css para ver qué está sucediendo. – albert

+1

El uso de la detección de características en lugar del rastreo del navegador sería más sólido, hay muchas bibliotecas por ahí, pruebe [esta búsqueda en Google] (http://www.google.co.uk/webhp?sourceid=chrome-instant&ie=UTF -8 & ion = 1 & nord = 1 # sclient = psy-ab & hl = en & safe = off & nord = 1 & site = webhp & source = hp & q = javascript + feature + detection + library & pbx = 1 & oq = javascript + feature + detection + library & aq = f & aqi = q-w1 & aql = 1 & gs_sm = e & gs_upl = 57834l58466l1l58566l8l4l0l0l0l0l253l658l1.1.2l4l0 & bav = on.2, or.r_gc.r_pw., Cf.osb & fp = 64c9fa8ed75e2609 & ion = 1 & biw = 1680 & bih = 865) – Clive

+1

¿Está el servidor en su red local o en Internet? IE8, de forma predeterminada, pretende ser IE7 [al explorar sitios de intranet] (http://msdn.microsoft.com/en-us/library/cc288325%28v=vs.85%29.aspx). – robertc

Respuesta

4

¿Estás seguro de que no estás funcionando en modo IE7? Puede cambiarlo en algún lugar en la configuración del Desarrollador (F12, creo).

+0

te refieres al "modo de compatibilidad". Sí, eso es probable, porque en javascript, usando la biblioteca de Douglas Crockfords, puedes detectarlo, pero en el servidor no tienes ninguna posibilidad. – TMS

6

Es necesario comprobar Trident testigo también.

Trident símbolo

Cuando se utilizan las herramientas de desarrollo F12 para cambiar el modo de explorador de Internet Explorer, el token versión de la cadena de agente de usuario se modifica a aparecer para que el navegador parece ser una versión anterior. Esto se hace para permitir que el contenido específico del navegador se publique en Internet Explorer y generalmente solo es necesario cuando los sitios web no se han actualizado para reflejar las versiones actuales del navegador.

Cuando esto sucede, se agrega un token Trident a la cadena de agente de usuario. Este token incluye un número de versión que le permite identificar la versión del navegador, independientemente del modo de navegador actual.

MÁS: http://msdn.microsoft.com/en-us/library/ms537503.aspx

Cuestiones relacionadas