Estoy tratando de que mis funciones jQuery funcionen en IE8. Estoy cargando la biblioteca desde los servidores de Google ( http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js ).
El $(function(){})
nunca se llama. En cambio, obtengo un error Object expected
. Abrí el desarrollador y lo ejecuté typeof $
en la consola, y apareció como undefined
.
He intentado ir a otros sitios que sé que usan jQuery (jquery.com), y todos funcionan, ¿hay algo que me pueda perder aquí?
javascript
jquery
internet-explorer-8
Shashank Agrawal
fuente
fuente
Respuestas:
Escriba "var" antes de las variables, cuando las defina. IE8 muere cuando no hay "var".
fuente
var
para definir una variable con alcance local. Si define una variable sinvar
, en realidad crea una propiedad con alcance global, es decir, como una propiedad del objeto ventana. Consulte esta pregunta para obtener más información: stackoverflow.com/questions/1470488/…Corrección:
Compruebe su etiqueta de inclusión de script, ¿está usando
type="application/javascript" src="/path/to/jquery"
cambiar a
type="text/javascript" src="/path/to/jquery"
fuente
Estaba teniendo un problema similar. Las cosas funcionaron en IE6, Firefox e IE8 ejecutándose en modo de compatibilidad con IE7; pero no en IE8 'normal'. Mi solución fue poner este código en el encabezado
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
En cuanto a por qué jquery no funciona en IE8, no estoy claro.
fuente
La solución es actualizar a la última versión de jQuery. Tuve exactamente el mismo problema y me actualicé a 1.4.2 y todo funciona bien nuevamente en IE8.
Parece ser totalmente compatible con todas las cosas de jQuery 1.3.2 que hice también, ¡así que no tengo quejas aquí!
fuente
Tuve este problema y probé las soluciones mencionadas aquí sin éxito.
Finalmente, me di cuenta de que estaba enlazando a la versión de Google CDN del script usando un
http URL
mientras que la página que incrustaba el script era unhttps page
.Esto hizo que IE no cargara jquery (le pregunta al usuario si desea cargar solo contenido seguro). Cambiar la URL de Google CDN para usar el esquema https solucionó el problema.
fuente
Algunas personas que se encuentran con esta publicación pueden tener este problema con jquery e IE8 porque están usando> = jQuery v2. Utilice este código:
<!--[if lt IE 9]> <script src="jquery-1.9.0.js"></script> <![endif]--> <!--[if gte IE 9]><!--> <script src="jquery-2.0.0.js"></script> <!--<![endif]-->
fuente
Si está utilizando HTTPS en su sitio, deberá cargar la biblioteca jQuery desde el servidor https de Googles. Pruebe esto: https://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js (o la última https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/ jquery.min.js )
fuente
jQuery no se está cargando, esto probablemente no sea específico de IE8. Verifique la ruta en su jQuery include. declaración. O mejor aún, use lo siguiente para la CDN:
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"> </script>
fuente
Estaba arreglando una plantilla creada por otra persona que olvidó incluir el doctype.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Si no declara que
doctype
IE8 hace cosas extrañas en el modo Quirks.fuente
El error
Object expected
surge porque Jquery no está cargado. Esto sucede debido a la seguridad del navegador (generalmente IE) que no le permite ejecutar código fuente externo de JavaScript. Puede corregir este problema de la siguiente manera:O
Prefiero la primera solución.
fuente
El evento onload no siempre funciona en IE7 / 8 en
<head> ... </head>
Puede forzarlo agregando un script onload al final de su página antes de la etiqueta como se muestra a continuación.
<script> window.onload(); </script> </body>
fuente
Tal vez inserte dos scripts, debería funcionar.
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE8.js"></script> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js">/script>
fuente
Esto solucionó mi problema en IE8:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
Ejecutando en localhost, tuve que cambiar https: // a http: //
Si intento navegar hasta el enlace seguro, obtengo que Internet Explorer no puede mostrar la advertencia amigable de la página web .
Siempre intente cargar sus scripts de texto en un navegador primero si hay problemas.
fuente
Yo tenía los mismos problemas.
Lo resolví verificando que IE8 no estaba configurado correctamente para llegar a la URL de SRC.
Cambié esto, funciona bien.
fuente
¿Quizás tienes activado el filtrado inPrivate ?
fuente
Tuve el mismo problema. La solución fue agregar el enlace al archivo JQuery como un sitio confiable en IE.
fuente
Creo que tienes el mismo problema que yo:
Message: Permission denied Line: 13 Char: 27021 Code: 0 URI: http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.3.2.min.js
Debido a la referencia entre dominios. Intente alojar jquery.js en el mismo dominio.
fuente
En resumen, se debe al motor de análisis de IE8.
¿Adivina por qué Microsoft también tiene problemas para trabajar con las nuevas etiquetas HTML5 (como "sección")? Es porque MS decidió que no utilizará el análisis XML regular, como el resto del mundo. Sí, es cierto, hicieron un montón de propaganda en XML pero al final, recurrieron a un motor de análisis "estúpido" en busca de "etiquetas conocidas" y estropearon las cosas cuando aparece algo nuevo.
Lo mismo ocurre con IE8 y el problema de jquery con "load", "get" y "post". Nuevamente, Microsoft decidió "seguir su propio camino" con la versión 8. Con la esperanza de resolver (d) esto en IE9, la única opción actual es recurrir al análisis sintáctico de IE7
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
.Oh, bueno ... qué sorpresa que Microsoft nos hizo publicar cosas en foros nuevamente. ;)
fuente
La solución en mi caso fue eliminar los caracteres especiales de la URL a la que intentas acceder. Tenía una tilde (~) y un símbolo de porcentaje allí, y la llamada $ .get () falló silenciosamente.
fuente
¡OKAY! Sé que jQuery se está cargando. Yo sé eso
jQuery.textshadow.js
está cargando. Puedo encontrar ambos scripts en Developer Tools.La parte extraña: este código funciona en el área de contenido pero no en el banner. Incluso con un dedicado
fixIE.css
. Y funciona cuando pongo el CSS en línea. (Eso, por supuesto, estropea Firefox).Incluso puse un intervalo de IE condicional alrededor del campo de texto en el banner sin suerte.
No encontré ninguna diferencia y tuve los mismos errores en ambos
jquery-1.4.2.min.js
yjquery-1.2.6.min.js
.jquery.textshadow.js
se descargó del sitio jQuery mientras intentaba encontrar una solución a este problema.Esto no se publica en el sitio web.
fuente