Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/08/2012, 06:01
mario8
 
Fecha de Ingreso: agosto-2012
Mensajes: 12
Antigüedad: 12 años, 2 meses
Puntos: 0
Duda con javascript en chat

Buenas soy nuevo en este foro me yamo Mario, y espero que me deis ideas de que puede ser lo que le pasa a mi chat resulta que en la caja del chat no se guarda lo que escribo, que es lo que puede ser? un saludo gracias.
Código Javascript:
Ver original
  1. function restructureChatBoxes() {
  2.     align = 0;
  3.     for (x in chatBoxes) {
  4.         chatboxtitle = chatBoxes[x];
  5.  
  6.         if ($("#chatbox_"+chatboxtitle).css('display') != 'none') {
  7.             if (align == 0) {
  8.                 $("#chatbox_"+chatboxtitle).css('right', '20px');
  9.             } else {
  10.                 width = (align)*(225+7)+20;
  11.                 $("#chatbox_"+chatboxtitle).css('right', width+'px');
  12.             }
  13.             align++;
  14.         }
  15.     }
  16. }
  17.  
  18. function chatWith(chatuser, chatid) {
  19.     createChatBox(chatuser,chatid);
  20.     $("#chatbox_"+chatboxtitle+" .chatboxtextarea").focus();
  21. }
  22.  
  23. function createChatBox(chatboxtitle,chatid,minimizeChatBox) {
  24.     if ($("#chatbox_"+chatboxtitle).length > 0) {
  25.         if ($("#chatbox_"+chatboxtitle).css('display') == 'none') {
  26.             $("#chatbox_"+chatboxtitle).css('display','block');
  27.             restructureChatBoxes();
  28.         }
  29.         $("#chatbox_"+chatboxtitle+" .chatboxtextarea").focus();
  30.         return;
  31.     }
  32.  
  33.     $(" <div />" ).attr("id","chatbox_"+chatboxtitle)
  34.     .addClass("chatbox")
  35.     .html('<div class="chatboxhead"><div class="chatboxtitle">'+chatboxtitle+'</div><div class="chatboxoptions"><a href="javascript:void(0)" onclick="javascript:toggleChatBoxGrowth(\''+chatboxtitle+'\')">-</a> <a href="javascript:void(0)" onclick="javascript:closeChatBox(\''+chatboxtitle+'\')">X</a></div><br clear="all"/></div><div class="chatboxcontent"></div><div class="chatboxinput"><textarea class="chatboxtextarea" onkeydown="javascript:return checkChatBoxInputKey(event,this,\''+chatid+'\');"></textarea></div>')
  36.     .appendTo($( "body" ));
  37.                
  38.     $("#chatbox_"+chatboxtitle).css('bottom', '0px');
  39.    
  40.     chatBoxeslength = 0;
  41.  
  42.     for (x in chatBoxes) {
  43.         if ($("#chatbox_"+chatBoxes[x]).css('display') != 'none') {
  44.             chatBoxeslength++;
  45.         }
  46.     }
  47.  
  48.     if (chatBoxeslength == 0) {
  49.         $("#chatbox_"+chatboxtitle).css('right', '20px');
  50.     } else {
  51.         width = (chatBoxeslength)*(225+7)+20;
  52.         $("#chatbox_"+chatboxtitle).css('right', width+'px');
  53.     }
  54.    
  55.     chatBoxes.push(chatboxtitle);
  56.  
  57.     if (minimizeChatBox == 1) {
  58.         minimizedChatBoxes = new Array();
  59.  
  60.         if ($.cookie('chatbox_minimized')) {
  61.             minimizedChatBoxes = $.cookie('chatbox_minimized').split(/\|/);
  62.         }
  63.         minimize = 0;
  64.         for (j=0;j<minimizedChatBoxes.length;j++) {
  65.             if (minimizedChatBoxes[j] == chatboxtitle) {
  66.  
  67.                 minimize = 1;
  68.             }
  69.         }
  70.  
  71.         if (minimize == 1) {
  72.             $('#chatbox_'+chatboxtitle+' .chatboxcontent').css('display','none');
  73.             $('#chatbox_'+chatboxtitle+' .chatboxinput').css('display','none');
  74.         }
  75.     }
  76.  
  77.     chatboxFocus[chatboxtitle] = false;
  78.  
  79.     $("#chatbox_"+chatboxtitle+" .chatboxtextarea").blur(function(){
  80.         chatboxFocus[chatboxtitle] = false;
  81.         $("#chatbox_"+chatboxtitle+" .chatboxtextarea").removeClass('chatboxtextareaselected');
  82.     }).focus(function(){
  83.         chatboxFocus[chatboxtitle] = true;
  84.         newMessages[chatboxtitle] = false;
  85.         $('#chatbox_'+chatboxtitle+' .chatboxhead').removeClass('chatboxblink');
  86.         $("#chatbox_"+chatboxtitle+" .chatboxtextarea").addClass('chatboxtextareaselected');
  87.     });
  88.  
  89.     $("#chatbox_"+chatboxtitle).click(function() {
  90.         if ($('#chatbox_'+chatboxtitle+' .chatboxcontent').css('display') != 'none') {
  91.             $("#chatbox_"+chatboxtitle+" .chatboxtextarea").focus();
  92.         }
  93.     });
  94.  
  95.     $("#chatbox_"+chatboxtitle).show();
  96. }
  97.  
  98.  
  99. function chatHeartbeat(){
  100.  
  101.     var itemsfound = 0;
  102.    
  103.     if (windowFocus == false) {
  104.  
  105.         var blinkNumber = 0;
  106.         var titleChanged = 0;
  107.         for (x in newMessagesWin) {
  108.             if (newMessagesWin[x] == true) {
  109.                 ++blinkNumber;
  110.                 if (blinkNumber >= blinkOrder) {
  111.                     document.title = x+' dice...';/* AKI ES LO DE ARRIBA DEL TITULO*/
  112.                     titleChanged = 1;
  113.                     break; 
  114.                 }
  115.             }
  116.         }
  117.        
  118.         if (titleChanged == 0) {
  119.             document.title = originalTitle;
  120.             blinkOrder = 0;
  121.         } else {
  122.             ++blinkOrder;
  123.         }
  124.  
  125.     } else {
  126.         for (x in newMessagesWin) {
  127.             newMessagesWin[x] = false;
  128.         }
  129.     }
  130.  
  131.     for (x in newMessages) {
  132.         if (newMessages[x] == true) {
  133.             if (chatboxFocus[x] == false) {
  134.                 //FIXME: add toggle all or none policy, otherwise it looks funny
  135.                 $('#chatbox_'+x+' .chatboxhead').toggleClass('chatboxblink');
  136.             }
  137.         }
  138.     }
  139.    
  140.     $.ajax({
  141.       url: "chat.php?action=chatheartbeat",
  142.       cache: false,
  143.       dataType: "json",
  144.       success: function(data) {
  145.  
  146.         $.each(data.items, function(i,item){
  147.             if (item)   { // fix strange ie bug
  148.  
  149.                 chatboxtitle = item.f;
  150.  
  151.                 if ($("#chatbox_"+chatboxtitle).length <= 0) {
  152.                     createChatBox(chatboxtitle);
  153.                 }
  154.                 if ($("#chatbox_"+chatboxtitle).css('display') == 'none') {
  155.                     $("#chatbox_"+chatboxtitle).css('display','block');
  156.                     restructureChatBoxes();
  157.                 }
  158.                
  159.                 if (item.s == 1) {
  160.                     item.f = username;
  161.                 }
  162.  
  163.                 if (item.s == 2) {
  164.                     $("#chatbox_"+chatboxtitle+" .chatboxcontent").append('<div class="chatboxmessage"><span class="chatboxinfo">'+item.m+'</span></div>');
  165.                 } else {
  166.                     newMessages[chatboxtitle] = true;
  167.                     newMessagesWin[chatboxtitle] = true;
  168.                     $("#chatbox_"+chatboxtitle+" .chatboxcontent").append('<div class="chatboxmessage"><span class="chatboxmessagefrom">'+item.f+':&nbsp;&nbsp;</span><span class="chatboxmessagecontent">'+item.m+'</span></div>');
  169.                 }
  170.  
  171.                 $("#chatbox_"+chatboxtitle+" .chatboxcontent").scrollTop($("#chatbox_"+chatboxtitle+" .chatboxcontent")[0].scrollHeight);
  172.                 itemsfound += 1;
  173.             }
  174.         });
  175.  
  176.         chatHeartbeatCount++;
  177.  
  178.         if (itemsfound > 0) {
  179.             chatHeartbeatTime = minChatHeartbeat;
  180.             chatHeartbeatCount = 1;
  181.         } else if (chatHeartbeatCount >= 10) {
  182.             chatHeartbeatTime *= 2;
  183.             chatHeartbeatCount = 1;
  184.             if (chatHeartbeatTime > maxChatHeartbeat) {
  185.                 chatHeartbeatTime = maxChatHeartbeat;
  186.             }
  187.         }
  188.        
  189.         setTimeout('chatHeartbeat();',chatHeartbeatTime);
  190.     }});
  191. }
  192.  
  193. function closeChatBox(chatboxtitle) {
  194.     $('#chatbox_'+chatboxtitle).css('display','none');
  195.     restructureChatBoxes();
  196.  
  197.     $.post("chat.php?action=closechat", { chatbox: chatboxtitle} , function(data){ 
  198.     });
  199.  
  200. }
  201.  
  202. function toggleChatBoxGrowth(chatboxtitle) {
  203.     if ($('#chatbox_'+chatboxtitle+' .chatboxcontent').css('display') == 'none') {  
  204.        
  205.         var minimizedChatBoxes = new Array();
  206.        
  207.         if ($.cookie('chatbox_minimized')) {
  208.             minimizedChatBoxes = $.cookie('chatbox_minimized').split(/\|/);
  209.         }
  210.  
  211.         var newCookie = '';
  212.  
  213.         for (i=0;i<minimizedChatBoxes.length;i++) {
  214.             if (minimizedChatBoxes[i] != chatboxtitle) {
  215.                 newCookie += chatboxtitle+'|';
  216.             }
  217.         }
  218.  
  219.         newCookie = newCookie.slice(0, -1)
  220.  
  221.  
  222.         $.cookie('chatbox_minimized', newCookie);
  223.         $('#chatbox_'+chatboxtitle+' .chatboxcontent').css('display','block');
  224.         $('#chatbox_'+chatboxtitle+' .chatboxinput').css('display','block');
  225.         $("#chatbox_"+chatboxtitle+" .chatboxcontent").scrollTop($("#chatbox_"+chatboxtitle+" .chatboxcontent")[0].scrollHeight);
  226.     } else {
  227.        
  228.         var newCookie = chatboxtitle;
  229.  
  230.         if ($.cookie('chatbox_minimized')) {
  231.             newCookie += '|'+$.cookie('chatbox_minimized');
  232.         }
  233.  
  234.  
  235.         $.cookie('chatbox_minimized',newCookie);
  236.         $('#chatbox_'+chatboxtitle+' .chatboxcontent').css('display','none');
  237.         $('#chatbox_'+chatboxtitle+' .chatboxinput').css('display','none');
  238.     }
  239.    
  240. }
  241.  
  242. function checkChatBoxInputKey(event,chatboxtextarea,chatboxtitle) {
  243.      
  244.     if(event.keyCode == 13 && event.shiftKey == 0)  {
  245.         message = $(chatboxtextarea).val();
  246.         message = message.replace(/^\s+|\s+$/g,"");
  247.  
  248.         $(chatboxtextarea).val('');
  249.         $(chatboxtextarea).focus();
  250.         $(chatboxtextarea).css('height','44px');
  251.         if (message != '') {
  252.             $.post("chat.php?action=sendchat", {to: chatboxtitle, message: message} , function(data){
  253.                 message = message.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\"/g,"&quot;");
  254.                 $("#chatbox_"+chatboxtitle+" .chatboxcontent").append('<div class="chatboxmessage"><span class="chatboxmessagefrom">'+username+':&nbsp;&nbsp;</span><span class="chatboxmessagecontent">'+message+'</span></div>');
  255.                 $("#chatbox_"+chatboxtitle+" .chatboxcontent").scrollTop($("#chatbox_"+chatboxtitle+" .chatboxcontent")[0].scrollHeight);
  256.             });
  257.         }
  258.         chatHeartbeatTime = minChatHeartbeat;
  259.         chatHeartbeatCount = 1;
  260.  
  261.         return false;
  262.     }
  263.  
  264.     var adjustedHeight = chatboxtextarea.clientHeight;
  265.     var maxHeight = 94;
  266.  
  267.     if (maxHeight > adjustedHeight) {
  268.         adjustedHeight = Math.max(chatboxtextarea.scrollHeight, adjustedHeight);
  269.         if (maxHeight)
  270.             adjustedHeight = Math.min(maxHeight, adjustedHeight);
  271.         if (adjustedHeight > chatboxtextarea.clientHeight)
  272.             $(chatboxtextarea).css('height',adjustedHeight+8 +'px');
  273.     } else {
  274.         $(chatboxtextarea).css('overflow','auto');
  275.     }
  276.      
  277. }