Supervisor |
"> |
| Underground | |
| Combinar mensajes seguido de un miembro de CHATBOX - 4/7/2016, 1:36 pm
Que alguna vez se molestó con un puesto tras otro en una ventana de chat que tire la primera piedra... Bueno, no me gusta especialmente porque es un muy contaminado visual... Pensando en esto he desarrollado un código que unifica los mensajes seguido de un miembro de la misma, haciendo una lectura muy agradable, ver el código de abajo. 1º - JavascriptIn the [Javascript codes management], add as follows: Title* : JS_ChatMSGJoin Placement : [x] En todas las paginas. - Código:
/************************************************************************** * Module: JS_ChatMSGJoin * Description: Join duplicate messages in Chat Box! * Author: Made and Optimizations by JScript - 2014/11/02 * Version: Beta tester only! ***************************************************************************/ jQuery(function() { try { if (jQuery('#frame_chatbox').length) { if (jQuery('object#frame_chatbox').length) { // console.log('Replaced by JS_ChatMSGJoin'); var sHtml = '<iframe src="/chatbox/index.forum?archives=1" id="frame_chatbox" scrolling="yes" width="100%" height="100%" type="text/html" style="border: 0px;" />'; jQuery('#frame_chatbox').replaceWith(sHtml); } // jQuery(window).load(function() { var ChatIframeExist = setInterval(function() { if (document.getElementById("frame_chatbox").contentWindow.document.getElementById('chatbox') !== null) { clearInterval(ChatIframeExist); document.getElementById("frame_chatbox").contentWindow.document.getElementById('chatbox').style.display = 'none'; jQuery('#frame_chatbox').contents().find('#chatbox').after('<div id="js-chatbox" increment="10" pageincrement="0" maxpos="325" curpos="188"></div>'); // Copy entire CSS style from #chatbox to #js-chatbox id! // Implemented by JScript... var oStyleOrign = document.getElementById("frame_chatbox").contentWindow.document.getElementById('chatbox'); var oStyleCopy = document.getElementById("frame_chatbox").contentWindow.document.getElementById('js-chatbox'); oTarget = document.getElementById("frame_chatbox").contentWindow.getComputedStyle(oStyleOrign, ""); for (index = 0; index < oTarget.length; index++) { oStyleCopy.style.setProperty(oTarget[index], oTarget.getPropertyValue(oTarget[index]), null); } document.getElementById("frame_chatbox").contentWindow.document.getElementById('js-chatbox').style.display = 'block'; document.getElementById("frame_chatbox").contentWindow.refresh_chatbox("?archives=1"); var chatbox_updated = 1, chatbox_last_update = 0, oTarget = jQuery('#frame_chatbox').contents().find('#chatbox > p'), iLen = oTarget.length, index = 0; forNext(oTarget, index, iLen); setInterval(function() { try { if (document.getElementById("frame_chatbox").contentWindow.document.getElementById('chatbox_members').innerHTML !== '') { if (!chatbox_last_update) { document.getElementById("frame_chatbox").contentWindow.document.getElementById('js-chatbox').style.display = 'block'; } chatbox_updated = document.getElementById("frame_chatbox").contentWindow.chatbox_updated; chatbox_last_update = document.getElementById("frame_chatbox").contentWindow.chatbox_last_update; if (chatbox_updated !== chatbox_last_update) { try { oTarget = jQuery('#frame_chatbox').contents().find('#chatbox > p'); iLen = oTarget.length; index = 0; forNext(oTarget, index, iLen); document.getElementById("frame_chatbox").contentWindow.chatbox_updated = document.getElementById("frame_chatbox").contentWindow.chatbox_last_update; } catch (e) { // console.log(e); } // console.log('Changes!'); } } else if (chatbox_last_update) { chatbox_last_update = 0; document.getElementById("frame_chatbox").contentWindow.document.getElementById('js-chatbox').style.display = 'none'; } } catch (err) { // console.log(err) } }, 150); } }, 80); // }); } } catch (err) { // console.log(err) } }); function forNext(oTarget, index, iLen) { for (; index < iLen;) { var oThis = jQuery(oTarget[index]), sHref = oThis.find('.user > a').attr('href'), oNext = oThis.next(); if (sHref == undefined) break; if (oNext !== undefined) { var sHrefP = oNext.find('.user > a').attr('href'); if (sHrefP == sHref) { oThis.find('.msg').append('<div style="border: 1px solid rgb(240, 240, 240);padding: 2px 0;"><span title="">' + oNext.find('span[title]').text() + '</span> * ' + oNext.find('.msg').html() + '</div>'); oNext.remove(); } else { index++; } } else { break; } } document.getElementById("frame_chatbox").contentWindow.document.getElementById('js-chatbox').innerHTML = document.getElementById("frame_chatbox").contentWindow.document.getElementById('chatbox').innerHTML; document.getElementById("frame_chatbox").contentWindow.document.getElementById('js-chatbox').scrollTop = 999999; } 2º - PreviewAntes: Después Funciona en todas las versiones y el código comprueba si ya existe un "iframe" para la ventana de chat , si no se crea una!
| Permisos de este foro: | No puedes responder a temas en este foro.
Código [IMG] está Activado Código HTML está Activado
|
|
|