La semana pasada, Microsoft lanzó oficialmente la primera vista previa de Internet Explorer 11 con Windows 8.1. De esta manera, es hora de descansar en todos los rumores sobre esta controvertida versión filtrada del navegador web. Ahora conocemos algunos detalles importantes sobre Internet Explorer 11, incluido el soporte para WebGL, prejuicio (nota del traductor: Preread, como cargar archivos, etc., y no sé si la traducción es correcta), prerender (preprepresente), flexbox, observadores de mutaciones y otros estándares web. Quizás más interesante en IE11 es si es IE.
Microsoft ha eliminado algunas características del navegador de Internet Explorer por primera vez en mucho tiempo. La cadena de agente de usuario también ha cambiado. Parece que Microsoft ha abandonado su propio camino para que las ramas de código de detección de IE existentes devuelvan False en Internet Explorer 11 Browser, ya sea en JavaScript o en el servidor.
Cambios a agente de usuario
En comparación con las versiones anteriores, la cadena de agente de usuario de Internet Explorer 11 es más corta, y hay algunos cambios interesantes:
La copia del código es la siguiente:
Mozilla/5.0 (Windows NT 6.3; Trident/7.0; RV 11.0) como gecko
Para cadenas de agentes de usuario para Internet Explorer 10 en Windows 7
La copia del código es la siguiente:
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
La diferencia más obvia es que se ha eliminado la etiqueta "MSIE" de la cadena de agente de usuario en el navegador de Internet Explorer. También es convincente la adición de "como gecko" a la cola del agente de usuario. Esto muestra que Internet Explorer preferiría ser reconocido como un navegador de gecko que como un explorador de Internet. Safari es el primer navegador en agregar "como gecko", para que cualquiera pueda oler el carácter "gecko" en la cadena de agente de usuario para permitir que el navegador pase.
Ahora, cualquier código de olfateo que busque "MSIE" no funciona bajo la nueva cadena de agente de usuario. Todavía puede buscar el personaje "Trident" para determinar que es el navegador IE (el logotipo "Trident" se introdujo con Internet Explorer). La versión real de Internet Explorer se identifica por "RV".
Además, la información del objeto Navigator también ha cambiado, lo que oculta aún más el navegador que se está utilizando.
Navigator.appname está configurado en "Netscape"
Navigator.Product está configurado en "Gecko"
Esto puede parecer un intento de engañar furtivamente al desarrollador, pero en realidad se especifican HTML5. La propiedad Navigator.Product debe ser "gecko", y el navegador.appname también debe ser "netscape" o más específico. Pero Internet Explorer 11 carece de esta extraña sugerencia.
Los efectos secundarios causados por los cambios en la información del navegador, la detección del navegador basada en el uso de JavaScript en uso puede no estar disponible, lo que hace que Internet Explorer 11 reconozca como un navegador basado en Gecko.
Documento. Todos y sus amigos
Desde IE4, documento. Todo ha hecho todo en el navegador IE. El documento.getElementById () implementado anteriormente es similar al documento. Todo es el método IE para obtener una referencia de elementos DOM. Aunque documento. Todo mantiene soporte para DOM desde IE5 a IE10. Sin embargo, en 11, el producto que queda de esta época se ha establecido para devolver False, lo que significa que cualquier juicio de la rama de código basado en el documento. Todo fallará en IE11, incluso si el código realmente usa documentos. Todo para funcionar correctamente.
Otro legado es el GackEvent () que agrega la función del evento, similar al método DETACHEVENT (). Este método se ha eliminado de IE11. Estos métodos se eliminan para evitar algunos juicios lógicos, como:
La copia del código es la siguiente:
función addEvent (elemento, type, manejador) {
if (element.attachevent) {
element.attachevent ("on" + type, manejador);
} else if (element.addeventListener) {
elemento.addeventListener (tipo, controlador, falso);
}
}
Por supuesto, recomendamos que la versión que mejor use para probar siempre sea estable y cumpla con los estándares. En algún nivel, eliminar el método AttachEvent no causa ninguna molestia. Sin embargo, Internet está lleno de códigos lógicos de detección de características para Internet. La eliminación del método AttachEvent garantiza que cualquier código escrito de la manera anterior use la versión estándar en lugar de los métodos específicos de IE.
Algunas otras características eliminadas:
Window.execScript () - IE Versión del método eval ()
Window.doscroll () - IE Método de desplazamiento de la ventana
script.onreadyStateChange - Cambios de estado del script de carga en IE
script.readystate: el estado de la carga de script en IE
document.selection: el texto seleccionado actualmente en IE
Document.Createstylesheet-CREATE Stylesheet Document en IE
style.stylesheet: un objeto de estilo en IE Browser que hace referencia a una hoja de estilo
Todos estos métodos de navegador IE son reemplazados por características estándar. Después de eliminar estas características y métodos, el código de navegador cruzado basado en la detección de características funcionales estándar aún puede funcionar normalmente sin cambiar.
en conclusión
IE11 es probablemente el mejor navegador IE durante mucho tiempo. Microsoft finalmente se está preparando para eliminar los errores cometidos en el pasado y está listo para comenzar con los navegadores basados en los estándares actuales. Eliminar características antiguas y modificar las cadenas de agentes de usuario que no se reconocen como navegadores de IE es una práctica única, lo que garantiza que todos los sitios web continúen funcionando. Si la aplicación web utiliza la detección de funciones en lugar del olfateo del navegador, el código debe ejecutarse en IE11. Para las aplicaciones que usan olfates de agentes de usuario, los usuarios aún pueden ver un sitio web con buena funcionalidad, porque IE11 tiene un excelente soporte para estándar.
Se acerca un futuro sin el código de sucursal de IE, esperamos con ansias.
(Actualizado el 2 de julio de 2013), el documento. Todo lo mencionado en la revisión no se eliminó en realidad, sino que se cambió a falsedad
No he traducido el artículo durante mucho tiempo. Esta vez traducí el blog de Nicholas C. Zakas. El texto original está aquí: http://www.nczonline.net/blog/2013/07/02/internet-explorer-11-dont-call-me-ie/