Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    21

    Problema html javascript

    Venerdì, 25/12/2009 Segnala al moderatore

    Salve a tutti, ho un problema con un mio script, il cui scopo è visualizzare all'interno di un div dei messaggi (una sorta di chat insomma).
    Il problema è il seguente:
    in javascript la variabile data contiene tutti i messaggi, separati tra loro tramite il carattere |.
    Quindi, con l'istruzione:
    var messages = data.split('|');
    ottengo quindi un vettore di i elementi, contenenti ciascuno un singolo messaggio.
    Il ciclo per la visualizzazione dei messaggi è il seguente

    Codice PHP:
    for(var i=0i<messages.lengthi++)
    {
       var 
    document.createElement('p');
       
    p.appendChild(document.createTextNode(messages[(messages.length-1)-i]));
       
    mdiv.appendChild(p);


    Praticamente crea un elemento p per ogni messaggio che poi include nel div mdiv (con var mdiv = document.getElementById('chat_messaggi'))

    Ora, visualizzare messaggi normali non è un problema ma se per esempio l'elemeno 2 di messagges contiene anche codice html questo viene visualizzato come testo normale e non viene applicato al messaggio.

    Per esempio se messages[2] = "Prova messaggio"; il suo output tramite quel ciclo for sarà Prova messaggio e non Prova messaggio come dovrebbe essere...

    Come posso fare per applicare l'html al testo? Grazie mille in anticipo per le risposte!

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Perché usi createTextNode che legge tutto come testo, o fai cosi:
    codice:
    for(var i=0; i<messages.length; i++)
    {
      mdiv.innerHTML='
    
    '+messages[(messages.length-1)-i]+'</p>';
    }
    oppure togli la formattazione usi la tua soluzione e lo formatti dopo averlo appeso


    P.S. Venerdì, 25/12/2009 Segnala al moderatore cosa significa?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    21
    Innanzitutto grazie per la risposta!

    Il problema è che sono costretto ad usare i nodi in modo da poter ordinare in modo crescente i messaggi, infatti essendo una chat questi vengono ottenuti di continuo.
    Se uso la tua soluzione ottengo il testo formattato come dovrebbe essere, ma solo per un messaggio, nel senso che gli altri vanno a sovrascrivere quello precedente e quindi viene visualizzato solo l'ultimo messaggio.
    Io invece ho bisogno di conservare i messaggi, per visualizzarli assieme e per questo ho usato i node.

    Inoltre, non mi è possibile aggiungere la formattazione successivamente poichè la variabile data contiene l'insieme dei messaggi (separati dal carattere |) già formattati attraverso degli appositi script in php: in definitiva faccio una chiamata ad una pagina php che deve per forza restituirmi i dati già formattati poichè è lei che si deve occupare di questo.

    Mi chiedevo quindi se c'era un modo per mantenere i nodi (o qualcosa di equivalente che consenta di ordinare i messaggi conservandoli) e allo stesso tempo avere la formattazione in html...

    Dimenticavo, dato il giorno, auguri di buon natale!

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Per quanto concerne la cronologia non so dirti, la sovrascrittura (mi sono dimenticato) basta aggiungere un + e diventerà cosi:
    mdiv.innerHTML+='

    '.....
    Con la tua soluzione come già detto perdi la formattazione e l'unica e formattare dopo l'appesa.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    21
    Ti ringrazio ancora cavicchiandrea, non sai che razza di problema mi hai tolto!
    Conoscevo l'uso dell'operatore di concatenazione += (che ho usato anche in PHP, C, Java, ecc)
    ma non mi era venuta in mente una tale applicazione, banale e stupida ma sicuramente utilissima (già pensavo di dover dividere ogni messaggio in ulteriori array e applicare ad ognugno degli elementi un nodo, per poi impostargli l'attributo... insomma, da impazzire! XD).

    Grazie ancora quindi, buon natale davvero!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.