Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Problema con Tabs Ajax en IE !

Estas en el tema de Problema con Tabs Ajax en IE ! en el foro de Frameworks JS en Foros del Web. Tengo un codigo que me anda perfecto, en mozila pero en el internet explorer no me anda, paso el codigo: Código HTML: <script language = ...
  #1 (permalink)  
Antiguo 23/01/2009, 14:34
Avatar de @padawan@  
Fecha de Ingreso: julio-2005
Mensajes: 393
Antigüedad: 18 años, 10 meses
Puntos: 6
Problema con Tabs Ajax en IE !

Tengo un codigo que me anda perfecto, en mozila pero en el internet explorer no me anda, paso el codigo:

Código HTML:
<script language = "javascript">
							var peticion = false; 
							if (window.XMLHttpRequest) {
								  peticion = new XMLHttpRequest();
								  } else if (window.ActiveXObject) {
										peticion = new ActiveXObject("Microsoft.XMLHTTP");
							}
							
							
							function ObtenerDatos(datos,divID) { 
							if(peticion) {
								 var obj = document.getElementById(divID); 
								 peticion.open("GET", datos); 
								 peticion.onreadystatechange = function()  { 
									  if (peticion.readyState == 4) { 
										   obj.innerHTML = peticion.responseText; 
									  } 
								 } 
							peticion.send(null); 
							}
							}
							
							function CambiarEstilo(id) {
								var elementosMenu = getElementsByClassName(document, "li", "activo");
								for (k = 0; k< elementosMenu.length; k++) {
								elementosMenu[k].className = "inactivo";
								}
								var identity=document.getElementById(id);
								identity.className="activo";
							}
							
							/*
								function getElementsByClassName
								Written by Jonathan Snook, http://www.snook.ca/jonathan
								Add-ons by Robert Nyman, http://www.robertnyman.com
							*/
							
							function getElementsByClassName(oElm, strTagName, strClassName){
								var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
								var arrReturnElements = new Array();
								strClassName = strClassName.replace(/\-/g, "\\-");
								var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
								var oElement;
								for(var i=0; i<arrElements.length; i++){
									oElement = arrElements[i];      
									if(oRegExp.test(oElement.className)){
										arrReturnElements.push(oElement);
									}   
								}
								return (arrReturnElements)
							}
							
							
							</script>
							<ul id="tabnav">
							<li class="activo" id="bt1"><a href="javascript:ObtenerDatos('Destacadas/DestacadaPrincipal.asp','ContTabul');CambiarEstilo('bt1');">Principal</a></li>
							<li class="inactivo" id="bt2"><a href="javascript:ObtenerDatos('Destacadas/DestacadaAlquileres.asp','ContTabul');CambiarEstilo('bt2');">Alquileres</a></li>
							<li class="inactivo" id="bt3"><a href="javascript:ObtenerDatos('Destacadas/DestacadaCountries.asp','ContTabul');CambiarEstilo('bt3');">Countries</a></li>
							<li class="inactivo" id="bt4"><a href="javascript:ObtenerDatos('Destacadas/DestacadaLocales.asp','ContTabul');CambiarEstilo('bt4');">Locales</a></li>
							</ul>
							<div id="ContTabul" align="left">
							 <!-- #include file="Destacadas/DestacadaPrincipal.asp" -->
							</div> 
Me anda perfecto, cuando hago click en cada pestaña me trae los datos de cada pagina .asp perfectamente, pero cuando lo quier ejecutar en el IE me tira el siguiente error:
"Internet explorer no puede el sitio http://www.misitio.com/IndexAjax.asp"
"Operacion anulada"

Porque puede ser? no lo entiendo.
  #2 (permalink)  
Antiguo 26/01/2009, 06:31
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 2 meses
Puntos: 62
De acuerdo Respuesta: Problema con Tabs Ajax en IE !

Prueba con:
Código javascript:
Ver original
  1. var xmlhttp = function()
  2.     {
  3.         var a;try{a = new XMLHttpRequest();}
  4.         catch(e){try{a = new ActiveXObject('Msxml2.XMLHTTP');}
  5.         catch(e){try{a = new ActiveXObject('Microsoft.XMLHTTP');}
  6.         catch(e){alert('Your browser doesn\'t support ajax');a=false;}
  7.         }}return a;
  8.     };
  9.     var petition = new xmlhttp();
  10.     if(petition)
  11. ...

y luego dile si la llamada es sincrona o asincrona en OPEN:
Código javascript:
Ver original
  1. peticion.open("GET", datos, true); // si es asincrona
  2. peticion.open("GET", datos, false); // si es sincrona

recuerda que si la llamada es sincrona NO tendras el "onreadystatechange" pero si el "state"
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
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 02:30.