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

que es lo que devuelve el responseText y se mete en el innerHTML??

Estas en el tema de que es lo que devuelve el responseText y se mete en el innerHTML?? en el foro de Frameworks JS en Foros del Web. hola buenas, estoy empezando a probar esto del ajax, y esta muy bien. El caso es que tengo un problemilla, vamos a ver si me ...
  #1 (permalink)  
Antiguo 13/07/2005, 06:30
 
Fecha de Ingreso: mayo-2005
Mensajes: 18
Antigüedad: 19 años, 5 meses
Puntos: 0
Pregunta que es lo que devuelve el responseText y se mete en el innerHTML??

hola buenas, estoy empezando a probar esto del ajax, y esta muy bien. El caso es que tengo un problemilla, vamos a ver si me se explicar:

la pagina que hace la peticion ajax es la siguiente:


<html>
<head>
<script language="javascript">

function nuevoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}

if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}

function abreventana(){

if(document.getElementById('quienmehabla').innerHT ML!="")
//que haga algo
else //que haga otra cosa

}


function cargarContenido(){
var contenedor;
contenedor = document.getElementById('quienmehabla');
ajax=nuevoAjax();
ajax.open("GET", "hablandome.php",true);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
contenedor.innerHTML = ajax.responseText;
abreventana();
}
}
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ajax.send(null)
}

</script>
<title>Chat</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body><div id="quienmehabla" name="quienmehabla"></div>
<script type="text/javascript">
//cada 3 segundos se actualiza
window.setInterval("window.cargarContenido()",3000 );
</script>

</body>
</html>


el problema está en la funcion abreventana (que quiero que abra una ventana con el titulo de lo que ha devuelto el ajax al ejecutar el archivo hablandome.php)

y es que nose comparar el valor devuelto por el ajax en el objeto que tiene la propiedad innerHTML con algo (cadena vacia) para ver si lo que devuelve es correcto o no y hacer algo en el if o en el else

es un poco lioso pero bueno, si alguien sabe como se puede comparar que me ayude. Gracias a todos, saludos
  #2 (permalink)  
Antiguo 13/07/2005, 09:47
 
Fecha de Ingreso: mayo-2005
Mensajes: 18
Antigüedad: 19 años, 5 meses
Puntos: 0
vaya, ya me ha salido, el caso es que hay cosas que funcionan solo en el internet explorer y otras que solo van en el firefox. Solo lo he hecho para esos dos navagadores aunque supongo que lo que funcione en el firefox irá en el netscape, konqueror ....

bueno pues pongo el codiguillo que he modificado:

function cargarContenido(){
var contenedor;
contenedor = document.getElementById('quienmehabla');
ajax=nuevoAjax();
ajax.open("GET", "hablandome.php",true);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
contenedor.innerHTML = ajax.responseText;
abreventana(contenedor);
}
}
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ajax.send(null)
}

----------------------------------------------------------------------
y la mas importante es la de abreventana,

function abreventana(container){

var navegador = navigator.appName;
if (navegador=="Microsoft Internet Explorer") {
if(document.getElementById('quienmehabla').innerHT ML!="")
window.alert(document.getElementById('quienmehabla ').innerHTML);
//else {window.alert("en el else");}
}
else {
// si no es el internet explorer
var direc = container.firstChild.data;
if(direc != "\n"){
// el usuario container.firstChild.data me está hablando
window.alert(direc);
}
//else {window.alert("en el else");}
}

}




esta funcioncilla, mira si el navagador es el IE, comprueba lo que devuelve el ajax con la cadena vacia, y si no es lo mismo hace un window.alert.
Y luego sino es el IE lo compara con la cadena \n de los datos del primerhijo
y hace el windowalert como antes.

Es un poco lioso pero el caso es que lo que en IE se accede con:
document.getElementById('quienmehabla').innerHTML

en el firefox se accede con:
document.getElementById('quienmehabla').firstChild .data

y en IE es "" y en firefox es "\n"

bueno pues ya ta. Ahora solo me falta....

alguien sabe comprobar si una ventana con un nombre (que se pasa en el window.open que la abre) esta abierta o no??
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 20:57.