Probleminha IE e FIrefox
Probleminhas, estou fazendo(tentando) um chat eis que surge um problema quando um usuário do IE escreve algo e envia o chat quando aberto no firefox atualiza, mas quando ocorre o oposto o IE e o Opera não atualizam.
A idéia do código é a seguinte:
Quando eu atualizo a pagina ele guarda em um text(ultimaMen) a ultima atualização deste usuáro, ai a cada 3 segundos verifico(via ajax) se uma varialvel que guarda a ultima atualização é igual ao valor do text(ultimaMen). O grande problema é que no IE e no Opera este text não é atualizado ai quando a função verifica se esta diferente, ela encontra valores iguais e não atualiza. Abaixo coloquei o trecho de código que achei mais relevante se alguem quiser todas as páginas é só falar.
Pagina chat.asp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>Chat Felipe</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><script language="javascript" type="text/javascript" src="funcoes.js"></script><%'FUNÇÃO CHAMADA A CADA 3 SEGUNDOS PARA AVALIAR SE OUVE MUDANÇA response.write"<script>"response.write"function atualizaTempo(){"response.write "setTimeout('atualizaTempo()', 3000);"response.write " ultimaMensagem(document.escrever.ultimaMen.value);"response.write"}"response.write"</script>"%><link href="estilo.css" rel="stylesheet" type="text/css"><%'//QUANDO O USUÁRIO APERTAR F5 E JA ESTIVER LOGADO NÃO APARECERA A PAGINA DE LOGINif session("nome") = false then response.write"<body onLoad='java script: loadPaginaChat();'>"else response.write"<body onLoad=""java script: retiraLogin(); enviaMensagem(document.escrever.g_usuario.value,'atualizarLogo');"">"end if%><div id="mae"> <div id="login"> <form action="#" name="login"> Nome: <input type="text" name="usuario" id="usuario" size="12" maxlength="12"> <input type="button" value="Entrar" onClick="java script: enviaMensagem(document.login.usuario.value, 'Entrou na sala'); retiraLogin(); document.escrever.g_usuario.value = document.login.usuario.value;"> </form> </div> <div id="conversa"> </div> <div id="escrever"> <form action="#" name="escrever"> <input type="hidden" name="g_usuario" id="g_usuario"> <textarea cols="70" rows="3" name="mensagem" id="mensagem"></textarea> <input type="text" name="ultimaMen" id="ultimaMen"> <input type="button" value="Enviar" onClick="java script: enviaMensagem(document.escrever.g_usuario.value,document.escrever.mensagem.value); document.escrever.mensagem.value = '';"> </form> <a href="#" onClick="java script: enviaMensagem(document.escrever.g_usuario.value,'limpaLogo'); enviaMensagem(document.escrever.g_usuario.value,'atualizarLogo');">Limpar Tela</a> <a href="#" onClick="java script: enviaMensagem(document.escrever.g_usuario.value,'atualizarLogo');">Atualizar</a> </div></div></body></html>
Função que recebe o valor antigo do text, verifica se a mudança de valores e retorna um novo valor a este text
function ultimaMensagem(ultAtu) { if(document.getElementById) { var exibeResultado = document.getElementById('ultimaMen'); var ajax = openAjax(); ajax.open("GET", "mostra.asp", true); //espa pagina somente retorna uma variavel chamda atual que garda a ultima atualização realizada pelos participantes do chat. ajax.onreadystatechange = function() { if(ajax.readyState == 4) { if(ajax.status == 200) { var resultado = ajax.responseText; resultado = resultado.replace(/\+/g," "); resultado = unescape(resultado); document.getElementById('ultimaMen').value = parseInt(resultado); //document.escrever.ultimaMen.value = parseInt(resultado); //se o resultado passado for diferente então atualiza if(parseInt(ultAtu) != parseInt(resultado) ){ enviaMensagem(document.escrever.g_usuario.value,'atualizarLogo'); } } else { exibeResultado.innerHTML = "Erro: "; } } } ajax.send(null); // submete }}
Discussão (1)
Carregando comentários...