Cita:
Iniciado por ZiTAL no no hay formulario para registro de usuarios, de todas formas al parecer no funciona del todo bien, cuando tenga tiempo lo sigo mirando. Lo cojonudo es que funciona hasta en IE6 y en firefox no, manda cojones :(
Funciona en todos menos en firefox, y creo haber dado con el conque:
Código PHP:
function ajaxWrite()
{
if(lastSpanId==-1) // if lastSpanId is -1 the chat is loading you can't send message
{
return false;
}
sending=true; // if message is sending the chat stop loading for syncronyzing reasons
var comment = document.getElementById('zitalk_comment');
var loading=document.getElementById('loading');
var ajax = new ajaxFunction();
ajax.open("POST",pagename+"?Write=yes",true); // call to zitalk with Write variable
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // Ajax POST header
ajax.onreadystatechange=function()
{
if (ajax.readyState==4) // The request is complete
{
if (ajax.status==200) // Response successfull
{
loading.innerHTML=''; // hide loading message
sending=false; // finish saving comment, the chat can load normally
sending=false; // finish saving comment, the chat can load normally
comment.value=''; // empty comment box
comment.focus(); // focus comment box
}
}
else
{
loading.innerHTML='Sending message...'; //show loading message
}
}
ajax.send("comment="+comment.value); // to send php $_REQUEST variables
}
Código PHP:
function pulse(hau,e)
{
var evt = e ? e : event;
var key = window.Event ? evt.which : evt.keyCode;
//var comment=document.getElementById('zitalk_comment');
var chat=document.getElementById('chat');
var comment = trim(hau.value);
if(key==13) // return key
{
if(comment=='')
{
hau.focus();
return false;
}
else
{
if(sending==true)
{
return false;
}
else
{
//ajaxWrite();
ajaxWrite();
}
return false;
}
}
return false;
}
Las llamadas a ajax.open parece que en firefox tiene problemas al decirle que sea false (sincrono), pasa de actualizar y no sigue escuchando, si pones true(asincrono) sigue escuchando y lo pone bien, así parece que ya va en todos.
Lo de carga asincrona en realidad no crea conflictos con la sincronía que has montado para los mensajes, ya que se controla por variables como "sending", la asincronía es solo en la carga.
Espero haber ayudado.