Foros del Web » Programando para Internet » Jquery »

Error con jquery en IE8

Estas en el tema de Error con jquery en IE8 en el foro de Jquery en Foros del Web. Hola a todos... Resulta que me contrataron para hacer la programacion de una pagina web, era sencilla, y para manejar el ajax utilice jquery. Hice ...
  #1 (permalink)  
Antiguo 29/04/2010, 16:28
 
Fecha de Ingreso: julio-2009
Mensajes: 84
Antigüedad: 15 años, 3 meses
Puntos: 1
Error con jquery en IE8

Hola a todos...


Resulta que me contrataron para hacer la programacion de una pagina web, era sencilla, y para manejar el ajax utilice jquery. Hice la programacion del caso, el cliente la probo y todo bien. Hasta ese momento estaba trabajandola sobre un servidor de mi empresa. Esta es la pagina en mi servidor:

http://laboramos.gmoas.net/menucentral.php

Como podran observa aqui los menus funcionan perfectamente. pero cuando la subi al hosting y entro por el dominio mire lo que pasan:

http://www.laboramos.edu.co/menucentral.php

Como podran observar me al dar click en las opciones del menu me arroja un error en javascript que es el siguiente:

object doesn't support this property or method -> jquery.js -> linea 4792

reviso el archivo del plugin que esta tal cual como lo baje de la pagina y veo que es este segmento de codigo:

Código:
		xhr: window.XMLHttpRequest && (window.location.protocol !== "file:" || !window.ActiveXObject) ?
			function() {
				return new window.XMLHttpRequest(); //Linea del error
			} :
			function() {
				try {
					return new window.ActiveXObject("Microsoft.XMLHTTP");
				} catch(e) {}
			},
		accepts: {
			xml: "application/xml, text/xml",
			html: "text/html",
			script: "text/javascript, application/javascript",
			json: "application/json, text/javascript",
			text: "text/plain",
			_default: "*/*"
		}
Cada opcion del menu tiene en el onclick una funcion llamada "abrirAjax" que es la que me hace el envio por ajax y que contiene lo siguiente:

Código:
	function abrirAjax($CapaAjax,Archivo,URL)
	{
		// Enviamos el formulario usando AJAX
		$.ajax({
			type: 'POST',
			url: Archivo,
			data: URL,
			cache:false,
			beforeSend: function(){
				$CapaAjax.html("<center><img id='cargando' src='../imagenes/cargando.gif' style='border:none'></center>");
			},
			// Mostramos un mensaje con la respuesta de PHP
			success: function(data) {
				$('#cargando').hide();
				$CapaAjax.html("");
				$CapaAjax.html(data);
			}
		});
	}
Curiosamente en mozilla y chrome funciona sin problemas asi que no se que pueda ser, porque justo cuando lo subo al hosting falla y solo en IE.

Alguien por favor que me pueda colaborar con este problemita. Gracias de antemano.
  #2 (permalink)  
Antiguo 29/04/2010, 19:26
 
Fecha de Ingreso: febrero-2008
Mensajes: 43
Antigüedad: 16 años, 9 meses
Puntos: 2
Respuesta: Error con jquery en IE8

Por lo visto en IE8 falla al comprobar el soporte nativo XMLMHTTPRequest. De momento no hay solución oficial publicada.

Código:
		
xhr: window.XMLHttpRequest && (window.location.protocol !== "file:" || !window.ActiveXObject) ?
			function() {
                                // Devuelve este objeto que es para todos los navegadores menos IE
				return new window.XMLHttpRequest(); 
			} :
			function() {
				try { 
                                        // Este es el objeto que debería devolver
					return new window.ActiveXObject("Microsoft.XMLHTTP");
				} catch(e) {}
			},
Ya hay abierto un ticket aquí: http://dev.jquery.com/ticket/6334

Un forero de jquery ha publicado un "parche", sería este:

Código:
 $.ajax({
type: "POST",
xhr:  (window.ActiveXObject) ?
function() {
try {
return new window.ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {}
} :
function() {
return new window.XMLHttpRequest();
},
url: ajaxurl,
data: post,
beforeSend: function(){
    
   },
success: function(returndata){
}
});
http://forum.jquery.com/topic/jquery-ajax-ie8-problem


Yo no soy uno de esos cracks del javascript así que hasta aquí puedo ayudarte. De todas maneras si consigues arreglar el bug sería fantástico que lo compartieses. Un saludo.
  #3 (permalink)  
Antiguo 29/04/2010, 19:51
 
Fecha de Ingreso: abril-2008
Ubicación: MDQ
Mensajes: 54
Antigüedad: 16 años, 7 meses
Puntos: 2
Respuesta: Error con jquery en IE8

Fijate ACA a ver si te sirve. Si no estoy equivocado deberias usar return new window.ActiveXObject("Microsoft.XMLHTTP"); en catch

Última edición por chifliiiii; 04/05/2010 a las 13:39
  #4 (permalink)  
Antiguo 30/04/2010, 10:28
 
Fecha de Ingreso: julio-2009
Mensajes: 84
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Error con jquery en IE8

Cita:
Iniciado por chifliiiii Ver Mensaje
Fijate [URL="http://blog.timersys.com/jquery/acentos-y-caracteres-especiales-con-ajax-y-jquery-ii-parte/"]ACA[/URL] a ver si te sirve. Si no estoy equivocado deberias usar return new window.ActiveXObject("Microsoft.XMLHTTP"); en catch
Muchas gracias por las respuestas a los dos, use return new window.ActiveXObject("Microsoft.XMLHTTP"); en el catch y ya me funciono. Gracias.
  #5 (permalink)  
Antiguo 30/04/2010, 10:33
 
Fecha de Ingreso: abril-2008
Ubicación: MDQ
Mensajes: 54
Antigüedad: 16 años, 7 meses
Puntos: 2
Respuesta: Error con jquery en IE8

De nada, me alegro que asi fuera

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:01.