microsoft internet habilitar gratis enable chrome activar javascript internet-explorer internet-explorer-8

internet - ¿Cuáles son las causas más probables de errores de Javascript en IE8?



habilitar javascript en internet explorer 11 (4)

Estoy viendo muchos errores de Javascript en IE8 en páginas que funcionaron bien en IE7 (y Firefox, Chrome y Safari). Sé que IE hizo algunos cambios a cosas como la seguridad de Javascript. Algunos de estos no dan mensajes de error claros: cosas como violaciones de dominios cruzados pueden terminar arrojando excepciones muy vagas.

Hagamos una lista de verificación de los delincuentes principales cuando estamos solucionando errores de Javascript IE8. Por favor, haga una lista de un cambio en la forma de Javascript de IE8 que causaría un error de Javascript.



¡Puedo verificar que los publicados por "unique_username" sean precisos!

(cita) En realidad, un montón de cosas ha cambiado.

En primer lugar, REALMENTE importa en qué modo se encuentre. En IE8, hay 3 (TRES) modos.

  • IE5 Quirks: su página no tiene doctype, la página hace como IE5 hizo
  • Modo de estándares de IE 7: tiene un tipo de documento, pero se ha inhabilitado en el modo de estándares IE8 o se está ejecutando en el modo local o en el "Modo de compatibilidad".
  • Modo IE 8 Standards: tiene un doctype y está en INTRANET (modo predeterminado)

Ahora, si está renderizando en modo IE5 / IE7, nada cambia, excepto que se agregarán algunos métodos que no deberían interferir con su página.

Sin embargo, si, como la mayoría, está ejecutando un conjunto de tipos de documentos y, por lo tanto, en el modo Estándares IE8, se han producido los siguientes cambios.

1.) document.getElementById( id ); //now only returns the CORRECT matches!

2.) .getElementsByName (nombre); // ahora solo devuelve las coincidencias CORRECT! ¡No, no arreglado!

3.) .getAttribute( name ); //returns the CORRECT value for the given attribute! 4.) .setAttribute( name, value ); //actually SETS the name/value CORRECTLY (no more cAmElCaSe crud)! 5.) CSS Expressions are NO LONGER allowed (deprecated) 6.) Operation Aborted errors will still be thrown (in some cases) however the cases are fewer, and the error won''t kill the entire page/DOM 7.) The attributes[] array on elements should (from the RC build onwards) be correct in terms of contents, have a length, etc. 8.) Button elements now submit the contents of the value attribute, NOT the HTML contents of the Button Tag

También ha habido un montón de correcciones CSS 2.1, por lo que las cosas que se volvieron extrañas antes, o necesitaban hacks, deberían ser mucho mejores. (ver a continuación los detalles sobre alfa / transparencia - ha habido grandes cambios)

Vea el blog de IE para más detalles.

También vea Web Bug Track para detalles detallados sobre Bugs, Fixes for IE8 (y todos los demás navegadores)

SVG, esquinas redondeadas, escuchas de eventos basados ​​en ECMAScript, diseño de elementos de mejor forma / eventos, etc. aún faltan.

PD: si tiene problemas específicos, infórmenos y los ayudaremos a encontrarlos. ;-)

Actualizaciones:

Los eventos window.resize están actualmente rotos en IE8 Beta2 y IE8 Partner Release 1 (no se disparará) ahora se han corregido en la versión RTM

window.open(); in IE8 Partner Release is sometimes failing "claiming" that the target url is not available (quirky, hard to reproduce)


Un poco tarde para esta fiesta, pero al investigar la misma pregunta me encontré con este artículo de MSDN que destaca las funciones que no son compatibles con el motor JScript de IE 8.


Aquí hay un divertido (/ sarcasmo apagado) que descubrí. Si tiene un tipo MIME de "aplicación / javascript", en lugar de "texto / javascript", Internet Explorer:

A) ignora el tipo MIME inesperado y usa el archivo de todos modos?

B) no cargar el archivo en absoluto?

C) tome las primeras cien o más líneas del archivo, anteponga a otro archivo JS que aparezca antes en el HTML, y luego dele todo tipo de errores porque su medio archivo fuera de servicio + archivo real no lo hace ¿trabajo?

Así es, la respuesta es C ... No bromeo. Solíamos utilizar el tipo MIME "application / javascript" para evitar el almacenamiento en caché de archivos JS en IE6 / 7, y como resultado, perdí un día entero tratando de descubrir por qué IE8 estaba dando algunos errores realmente locos. Afortunadamente finalmente descubrí qué estaba pasando cuando me dijeron que tenía un error en la línea 650 de un archivo de 500 líneas (y luego, cuando vi el archivo en el depurador, vi el otro archivo anterior).

Moraleja de la historia: si quiere que IE8 funcione, NO use "application / javascript" para el tipo MIME de sus archivos JS.