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

innerHTML con responseText no funciona en IE (que raro)

Estas en el tema de innerHTML con responseText no funciona en IE (que raro) en el foro de Frameworks JS en Foros del Web. a ver... hice esto en firefox para traerme un html sencillo que tiene unos <option></option> para llenar un select con el ID cboMunicipio*: Código HTML: ...
  #1 (permalink)  
Antiguo 01/02/2006, 15:52
 
Fecha de Ingreso: julio-2003
Ubicación: venezuela
Mensajes: 51
Antigüedad: 21 años, 4 meses
Puntos: 0
innerHTML con responseText no funciona en IE (que raro)

a ver... hice esto en firefox para traerme un html sencillo que tiene unos <option></option> para llenar un select con el ID cboMunicipio*:

Código HTML:
document.getElementById('cboMunicipio').innerHTML = objXML.responseText;
en FF todo bello pero en IE no le da la #@$% gana de funcionar. He revisado 3577 paginas de ayuda: una de ellas me dio esta solucion:

Código HTML:
var parentElement = document.getElementById('parent');
try {
  parentElement.innerHTML = request.responseText;
}
catch (e) {
  // IE fails unless we wrap the string in another element.
  var wrappingDiv = document.createElement('div');
  wrappingDiv.innerHTML = request.responseText;
  parentElement.appendChild(wrappingDiv);
}
pero tampoco funciona.

cuento de nuevo con su ayuda para no parar en el hospital

Saludos y gracias de antemano

*(No vi la necesidad de usar responseXML cuando el xml que me traigo es identico al html que necesito)
  #2 (permalink)  
Antiguo 02/02/2006, 18:10
Avatar de SiR.CARAJ0DIDA  
Fecha de Ingreso: junio-2004
Ubicación: Acá
Mensajes: 1.166
Antigüedad: 20 años, 5 meses
Puntos: 4
si, ya me paso, uno de los 97893829382 bugs que tiene el explorer, lo que hay que hacer es crear nodo por nodo e ir metiendolos... podes recibir el valor y el texto del option por separado e ir creandolos dinamicamente con

var opt = document.createElement('option');
opt.value = ajax.responseText......

elselect.appendChild(opt);

y asi
__________________
Internet Explorer SuckS
Download FireFox
  #3 (permalink)  
Antiguo 03/02/2006, 13:23
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 11 meses
Puntos: 7
A ver si esto te sirve de algo. Te explico. Esto va en una página donde hay un formulario con localidad, provincia, region y pais. Cuando alguno de ellos cambia de genera una llamada AJaX.

Código:
var xmlHttp;

function createXMLHttpRequest() {
	if (window.ActiveXObject) {
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else if (window.XMLHttpRequest) {
		xmlHttp = new XMLHttpRequest();
	}
}

function startRequest(xFile) {
	createXMLHttpRequest();
	xmlHttp.onreadystatechange = handleStateChange;
	xmlHttp.open("GET", xFile, true);
	xmlHttp.send(null);
}

function handleStateChange() {
	if(xmlHttp.readyState == 4) {
		if(xmlHttp.status == 200) {
			document.getElementById("Geo").innerHTML = xmlHttp.responseText;
		}
	}
}

function changeGeo(){
	var varUrl, args = changeGeo.arguments;
	if(args.length>0){
		varUrl = args[0] + "?";
		if(args.length>=1){
			varUrl += "pais=" + args[1];
			if(args.length>=2){
				varUrl += "&region=" + args[2];
				if(args.length>=3){
					varUrl += "&provincia=" + args[3];
					if(args.length>=4){
						varUrl += "&localidad=" + args[4];
					}
				}
			}
		}
		// alert(varUrl);
		document.getElementById('Geo').innerHTML = "Espere...";
		startRequest(varUrl);
	}
}

function changeGeo2(){
	var varUrl, args = changeGeo2.arguments;
	if(args.length>0){
		varUrl = args[0] + "?";
		if(args.length>=1){
			varUrl += "pais=" + extraeValorList(args[1]);
			if(args.length>=2){
				varUrl += "&region=" + extraeValorList(args[2]);
				if(args.length>=3){
					varUrl += "&provincia=" + extraeValorList(args[3]);
					if(args.length>=4){
						varUrl += "&localidad=" + extraeValorList(args[4]);
					}
				}
			}
		}
		// alert(varUrl);
		document.getElementById('Geo').innerHTML = "Espere...";
		startRequest(varUrl);
	}
}

function extraeValorList(objName){
	if(document.getElementById(objName).options!="indefined"){
		return document.getElementById(objName).options[document.getElementById(objName).selectedIndex].value;
	} else { return ""; }
}

Estas dos ultimas funcion (changeGeo2 y extraeValorList) lo uso en la página de respuesta donde en cada onchange de cada select (menos localidad) pongo un onChange="changeGeo2('geo_view.php','pais','region ','provincia','localidades_nombre')

El el tag body meto un onload="changeGeo('geo_view.php','Torremolinos','M alaga','Andalucia','España')"

Y en la posición de la página donde quiero que aparezca hao un <div id="geo">Espere...</div>


Me funciona en IE y FF


Bueno. Espero haber ayudado




Un saludo
  #4 (permalink)  
Antiguo 06/02/2006, 13:44
 
Fecha de Ingreso: julio-2003
Ubicación: venezuela
Mensajes: 51
Antigüedad: 21 años, 4 meses
Puntos: 0
CARAJODIDA eso ya me toco hacerlo, pero es precisamente lo que quiero evitarme

tammander tengo que probar porque esto:

document.getElementById("Geo").innerHTML = xmlHttp.responseText;

a mi no me corrió en explorer
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 00:36.