Chat em PHP igual ao do GTalk-Gmail



Ontem para um de meus projetos eu estava procurando um chat no mesmo estilo do Chat do Gtalk, então achei este site Anantgarg que tinha um projeto de chat muito legal, então baixei e comecei a criar as Database, e fui incluindo o script em meu site, até ai tudo bem, até modifiquei o CSS para ficar mais parecido com o Layout que eu havia montado!
Foi então fui testar o script no maldito Internet Explorer, foi ai que...
Não enviava as mensagens de forma alguma!
Então fui la para o .js do Script, então achei isso:
<textarea class="chatboxtextarea" onkeydown="javascript:return checkChatBoxInputKey(event,this,\''+chatboxtitle+'\');">
que chamava este função:
function checkChatBoxInputKey(event,chatboxtextarea,chatboxtitle) {

if(event.keyCode == 13 && event.shiftKey == 0) {
message = $(chatboxtextarea).val();
message = message.replace(/^\s+|\s+$/g,"");

$(chatboxtextarea).val('');
$(chatboxtextarea).focus();
$(chatboxtextarea).css('height','44px');
if (message != '') {
$.post("chat.php?action=sendchat", {to: chatboxtitle, message: message} , function(data){
message = message.replace(//g,">").replace(/\"/g,""");
$("#chatbox_"+chatboxtitle+" .chatboxcontent").append('
'+username+':  '+message+'
');
$("#chatbox_"+chatboxtitle+" .chatboxcontent").scrollTop($("#chatbox_"+chatboxtitle+" .chatboxcontent")[0].scrollHeight);
});
}
chatHeartbeatTime = minChatHeartbeat;
chatHeartbeatCount = 1;

return false;
}

var adjustedHeight = chatboxtextarea.clientHeight;
var maxHeight = 94;

if (maxHeight > adjustedHeight) {
adjustedHeight = Math.max(chatboxtextarea.scrollHeight, adjustedHeight);
if (maxHeight)
adjustedHeight = Math.min(maxHeight, adjustedHeight);
if (adjustedHeight > chatboxtextarea.clientHeight)
$(chatboxtextarea).css('height',adjustedHeight+8 +'px');
} else {
$(chatboxtextarea).css('overflow','auto');
}

}
foi ai que descobri que no IE deveriamos clicar ALT+Enter para enviar, então criei uma nova função:

function enviar(event,chatboxtextarea,chatboxtitle) {
message = $(chatboxtextarea).val();
message = message.replace(/^\s+|\s+$/g,"");
$(chatboxtextarea).val('');
$(chatboxtextarea).focus();
$(chatboxtextarea).css('height','44px');
$.post("chat.php?action=sendchat", {to: chatboxtitle, message: message} , function(data){
message = message.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\"/g,"&quot;");
$("#chatbox_"+chatboxtitle+" .chatboxcontent").append('<div class="chatboxmessage"><span class="chatboxmessagefrom">'+username+':&nbsp;&nbsp;</span><span class="chatboxmessagecontent">'+message+'</span></div>');
$("#chatbox_"+chatboxtitle+" .chatboxcontent").scrollTop($("#chatbox_"+chatboxtitle+" .chatboxcontent")[0].scrollHeight);
});

chatHeartbeatTime = minChatHeartbeat;
chatHeartbeatCount = 1;
return false;

}

E se lembra lá do código do inicio?
Ele ficou assim:

<textarea id="estaki" class="chatboxtextarea" onkeydown="javascript:return checkChatBoxInputKey(event,this,\''+chatboxtitle+'\');"></textarea><input type="image" src="imagens/ok.gif" onClick="javascript:return enviar(event,estaki,\''+chatboxtitle+'\');" >

É isso... Agora funciona no Internet Explorer 6, 7  e 8!
Para quem quiser o projeto editado por mim Clique aqui para fazer o download!
Abraço até a próxima!

0 Comentários:

Postar um comentário

Leia as regras:
Todos os comentários são lidos e moderados previamente.
São publicados aqueles que respeitam as regras abaixo:

- Seu comentário precisa ter relação com o assunto do post;
- Em hipótese alguma faça propaganda de outros blogs ou sites;
- Não inclua links desnecessários no conteúdo do seu comentário;
- Se quiser deixar sua URL, comente usando a opção OpenID;
- O espaço dos comentários não é lugar para pedir parceria;
- CAIXA ALTA ou miguxês não serão tolerados;
- Ofensas pessoais, ameaças e xingamentos não são permitidos;
- Visitem Alternative Art - www.alternativeart.com.br