Boas-vindas ao Power Pixel

Junte-se a comunidade! Crie o seu próprio conteúdo, e faça amizades.EntrarCriar uma conta

fededz fededz  • Qui 6 Nov 2014 - 15:31

Não funciona: "Juntar seguidas mensagens de um membro no ChatBox" Empty Não funciona: "Juntar seguidas mensagens de um membro no ChatBox" Qui 6 Nov 2014 - 15:31

Minha questão:
Não Me o código funciona o próximo tópico.
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
para enviar a mensagem não é enviada com sucesso. Se a atualização
Sem o código:
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]

User test: DemoTF
Password: tfpassword

Código de avatars no chatbox
Código:
$(document).ready(function(){
    var sHtml = '<iframe onload="setOptions()" src="/chatbox/index.forum?archives=1" id="frame_chatbox" scrolling="yes" width="100%" height="100%" type="text/html" style="border: 0px;" />';
    $('#frame_chatbox').replaceWith(sHtml);
});

var old = '',
    oChat= null,
    connected = 1,
    chatbox_updated = 0,
    chatbox_last_update = 1,
    template_color = '#333333',
    chatbox_messages = 'null',
    chatbox_messages_old = '',
    number_of_refresh = 0,
    refresh_interval = 0,
    ncheckData = 0;

function setOptions() {
    oChat = $('#frame_chatbox').contents();
    oChat.find('#chatbox_footer form').attr('onsubmit', "parent.submitmsg2('?archives=1');parent.refresh_chatbox2('?archives=1');return false;");
    oChat.find('#chatbox_main_options li:eq(0) a').attr('onclick', "parent.ajax_refresh_chatbox2('?archives=1', 1);");
    oChat.find('#chatbox_main_options li:eq(3)').attr('onclick', "parent.refresh_chatbox2('?archives=1');");
    oChat.find('#chatbox_main_options li:eq(4) a').attr('onclick', "parent.CB_disconnect2();");

    connected = document.getElementById('frame_chatbox').contentWindow['connected'];
    chatbox_updated = document.getElementById('frame_chatbox').contentWindow['chatbox_updated'];
    chatbox_last_update = document.getElementById('frame_chatbox').contentWindow['chatbox_last_update'];
    number_of_refresh = document.getElementById('frame_chatbox').contentWindow['number_of_refresh'];
    // refresh_interval = document.getElementById('frame_chatbox').contentWindow['refresh_interval'];

    ncheckData = setInterval("checkData()", 10);
}
function checkData() {
    if (oChat.find('#chatbox span.user').length) {
        clearInterval(ncheckData);
        try {
            connected = document.getElementById('frame_chatbox').contentWindow['connected'];
            document.getElementById('frame_chatbox').contentWindow.clearInterval(document.getElementById('frame_chatbox').contentWindow['refresh_interval']);
            chatAvatar();
            refresh_interval = setInterval("refresh_chatbox2('?archives=1')", 5000);
            oChat[0].getElementById('chatbox').scrollTop = 999999;
        } catch (err) {}
    }
}
function chatAvatar() {
    var target = oChat.find('#chatbox span.user a'), chk = {};
    target.each(function(index) {
        var oThis = $(this);
        var USER_URL = oThis.attr('href');

        if (!chk[USER_URL]) {
            chk[USER_URL] = true;       
            //  if ( !oThis.parent().find('.KheopsUserPhoto.KheopsUserPhoto_icon').length ) {
            /* Gets the avatar saved in local storage */
            var oStor = sessionStorage.getItem('chat' + USER_URL);
       
            if (oStor !== null) {
                oChat.find("#chatbox span.user a[href='" + USER_URL + "']").parent().prepend('<img alt="" class="KheopsUserPhoto KheopsUserPhoto_icon" src="' + oStor + '">');
                //  oThis.parent().prepend('<img alt="" class="KheopsUserPhoto KheopsUserPhoto_icon" src="' + oStor + '">');
            } else {
                // jQuery.ajaxSetup({async:false});
                $.get(USER_URL, function (data) {
                    var AVATAR = $('#profile-advanced-right img', data).attr('src');
                    if (!AVATAR) AVATAR = $('#profile_tabs p img', data).attr('src');

                    oChat.find("#chatbox span.user a[href='" + USER_URL + "']").parent().prepend('<img alt="" class="KheopsUserPhoto KheopsUserPhoto_icon" src="' + AVATAR + '">');
                    /* Saves the member avatar in local storage */
                    sessionStorage.setItem('chat' + USER_URL, AVATAR);
                });
                // jQuery.ajaxSetup({async:true});
            }
            // }
        }
    });
}
function CB_disconnect2() {
  if (connected) {
        document.getElementById('frame_chatbox').contentWindow.ajax_connect('?archives=1', 'disconnect');
      clearInterval(refresh_interval);
        clearInterval(ncheckData);
        connected = 0;
  } else {
        document.getElementById('frame_chatbox').contentWindow.ajax_connect('?archives=1', 'connect');
        clearInterval(refresh_interval);
        document.getElementById('frame_chatbox').contentWindow.clearInterval(document.getElementById('frame_chatbox').contentWindow['refresh_interval']);
        connected = 1;
        number_of_refresh = 0;
        if (!ncheckData) ncheckData = setInterval("checkData()", 10);
      /*try {
            chatAvatar();
        refresh_interval = setInterval("refresh_chatbox2('?archives=1')", 5000);
      } catch (err) {}*/
  }
}
function submitmsg2(params) {
  oChat[0].post.sent.value = oChat[0].post.message.value;
  oChat[0].post.message.value = '';
  oChat[0].post.message.focus();
  ajax_submit_chatbox2(params);
  return false
}
function refresh_chatbox2(params) {
  if (params == '' || params == undefined) {
      params = '?achives=0'
  }
  if (oChat[0].getElementById('refresh_auto').checked == true) {
      ajax_refresh_chatbox2(params)
  }
    $.post('/chatbox/chatbox_actions.forum?archives=1', 'mode=send&sent=');
}
function ajax_refresh_chatbox2(params, force) {
  if (params == '' || params == undefined) {
      params = '?achives=0'
  }
  if (window.XMLHttpRequest) {
      var http_request = new XMLHttpRequest()
  } else if (window.ActiveXObject) {
      var http_request = new ActiveXObject("Microsoft.XMLHTTP")
  }
  http_request.onreadystatechange = function () {
      if (http_request.readyState == 4 && http_request.status == 200) {
        var parsed_text = http_request.responseText;
        eval(parsed_text);
        if (chatbox_last_update > chatbox_updated || force) {
            if (oChat[0].getElementById('chatbox').innerHTML != null) {
              if (chatbox_messages_old != chatbox_messages) {
                  oChat[0].getElementById('chatbox').innerHTML = chatbox_messages;
                  chatbox_messages_old = chatbox_messages;
                        chatAvatar();
                  oChat[0].getElementById('chatbox').scrollTop = oChat[0].getElementById('chatbox').scrollHeight + oChat[0].getElementById('chatbox').offsetHeight;
                  oChat[0].getElementById('chatbox').scrollTop = 999999;
              }
            }
            if (oChat[0].getElementById('chatbox_members').innerHTML != null) oChat[0].getElementById('chatbox_members').innerHTML = chatbox_memberlist;
            chatbox_updated = chatbox_last_update
        }
      }
  };
  http_request.open('GET', '/chatbox/chatbox_actions.forum' + params + '&mode=refresh', true);
  http_request.send(null)
}
function ajax_submit_chatbox2(params) {
  number_of_refresh = 0;
  var msg_sent = oChat[0].post.sent.value;
  if (params == '' || params == undefined) {
      params = '?achives=0'
  }
  var data = '&mode=send';
  data += '&sent=' + encodeURIComponent(msg_sent);
  data += '&sbold=' + oChat[0].post.sbold.value;
  data += '&sitalic=' + oChat[0].post.sitalic.value;
  data += '&sunderline=' + oChat[0].post.sunderline.value;
  data += '&sstrike=' + oChat[0].post.sstrike.value;
  data += '&scolor=' + oChat[0].post.scolor.value;
  if ((msg_sent.indexOf('/away') == 0) || (msg_sent.indexOf('/abs') == 0)) {
      oChat[0].getElementById('refresh_auto').checked = false
  }
  if (oChat[0].post.sent.value == '/banlist') {
      window.open('/chatbox/chatbox_banlist.forum' + params, 'banlist', 'toolbar=no,menubar=no,personalbar=no,width=450,height=300,scrollbars=yes,resizable=yes');
      return false
  }
  if (window.XMLHttpRequest) {
      var http_request = new XMLHttpRequest()
  } else if (window.ActiveXObject) {
      var http_request = new ActiveXObject("Microsoft.XMLHTTP")
  }
  http_request.onreadystatechange = function () {
      if (http_request.readyState == 4 && http_request.status == 200) {
        var parsed_text = http_request.responseText;
        eval(parsed_text);
        if (chatbox_last_update > chatbox_updated) {
            oChat[0].getElementById('chatbox').innerHTML = chatbox_messages;
            oChat[0].getElementById('chatbox_members').innerHTML = chatbox_memberlist;
            chatbox_updated = chatbox_last_update;
                chatAvatar();
            oChat[0].getElementById('chatbox').scrollTop = 999999;
        }
      }
  };
  http_request.open('POST', '/chatbox/chatbox_actions.forum' + params, true);
  http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
  http_request.send((data))
}

Obrigado pela atenção, e desculpe por erros de ortografia (translate.google.com)


Endereço do meu fórum:
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]

Versão:
PunBB

JScript JScript  • Qui 6 Nov 2014 - 18:03

Não funciona: "Juntar seguidas mensagens de um membro no ChatBox" Empty Re: Não funciona: "Juntar seguidas mensagens de um membro no ChatBox" Qui 6 Nov 2014 - 18:03

Olá!

Eu pude observar que você utiliza algum código que adiciona o avatar dos membros no ChatBox e com certeza o código pega o ID chatbox para realizar isso!

O meu código oculta esse ID e cria um outro com as mesmas características incluindo até o CSS, mas terás que identificar o outro código que adiciona os avatares e trocar o ID para js-chatbox, pelo menos por enquanto até que eu consiga transferir a leitura de eventos do ID original para o que eu criei ok?

Edit:
Eu vi que está utilizando um antigo e desatualizado código para avatar no ChatBox que eu mesmo fiz, sugiro que o remova e aguarde uma nova versão dele ok?

Aguardo seu retorno e obrigado,

JS

fededz fededz  • Qui 6 Nov 2014 - 18:23

JScript JScript  • Qui 6 Nov 2014 - 18:33

fededz fededz  • Qui 6 Nov 2014 - 21:32

HeroWaar HeroWaar  • Qui 13 Nov 2014 - 9:02

Não funciona: "Juntar seguidas mensagens de um membro no ChatBox" Empty Re: Não funciona: "Juntar seguidas mensagens de um membro no ChatBox" Qui 13 Nov 2014 - 9:02

Tutorial será postado em breve.

[sucesso="Tópico Resolvido; e Bloqueado"][/sucesso]

Este tópico foi movido de "Pedido de código" para "Arquivo - Pedido de código".

Conteúdo patrocinado  • 

Não funciona: "Juntar seguidas mensagens de um membro no ChatBox" Empty Re: Não funciona: "Juntar seguidas mensagens de um membro no ChatBox"

Permissões neste sub-fórum
Não podes responder a tópicos