Come ottenere il testo in chiaro da summernote editor?

per esempio, questo è quello che ho inserito:

sdf
42342
xxcv

.code() converte sdf<br>42342<br>xxcv

o un’altra cosa:

[{"_type":"ServerOperation","operationType":"ANNOUNCE"}]

diventa

<span class="message_content">[{"_type":"ServerOperation","operationType":"ANNOUNCE"}]</span>

come ottenere il puro /testo normale?

InformationsquelleAutor John Smith | 2015-04-09



6 Replies
  1. 16

    È possibile applicare uno dei due risposte per la domanda JavaScript: Come striscia tag HTML da una stringa?, dopo il .code() a striscia la tag.

    ReactiveRaven risposta (per mantenere una linea) funziona bene per me:

    cleanText = $("#summernote").code().replace(/<\/?[^>]+(>|$)/g, "");

    Per esempio, Con [{"_type":"ServerOperation","operationType":"ANNOUNCE"}]:

    • $("#summernote").code() restituisce

      <p>[{"_type":"ServerOperation","operationType":"ANNOUNCE"}]<br></p>

    • $("#summernote").code().replace(/<\/?[^>]+(>|$)/g, "") restituisce

      [{"_type":"ServerOperation","operationType":"ANNOUNCE"}]

      senza tag.


    E se si desidera conservare il ritorno a capo, si potrebbe sostituire </p> e <br> per un \n prima di applicare la soluzione specificato collegati domanda:

    $("#summernote").code()
                    .replace(/<\/p>/gi, "\n")
                    .replace(/<br\/?>/gi, "\n")
                    .replace(/<\/?[^>]+(>|$)/g, "");
    • sì, nel frattempo ho risolto con php striptag
  2. 21

    Basta provare questo:

    var plainText = $($("#summernote").code()).text()

    MODIFICA:
    Nelle versioni più recenti è necessario utilizzare invece questo:

    var plainText = $($("#summernote").summernote("code")).text()
    • Formidabile, e di evitare regex su html. Questo deve essere accettato risposta!!!
  3. 3

    è possibile utilizzare questo

       var code = $("#editor").code();
    var text = code.replace(/<p>/gi, " ");
    var plainText= $("<div />").html(text).text();
    • È molto importante per avvolgere il contenuto da un div piace quello che stai facendo qui $("<div />").html(text).text();. Perché se il contenuto di summernote contenere alcune di testo normale e non avvolgere il tutto contenuto all’interno di un tag HTML(come div) quindi, jQuery, mediante un errore dicendo che non era previsto.
  4. 2

    versioni più recenti

    var contents = $('#summernote').summernote('code');
    var plainText = $("<p>" + contents+ "</p>").text();

    Aggiunta di un manichino tag

    risolve la mancanza di formattazione.

  5. 2

    Ho bisogno di controllare se la textarea avuto alcun contenuto. Questo hanno fatto il trucco:

    Corrente summernote versione (8):

    $($("#summernote").summernote('code').replace(/&nbsp;|<br>/g, ' ')).text().trim() == ''

    Nella mia versione precedente:

    $($("#summernote").code().replace(/&nbsp;|<br>/g, ' ')).text().trim() == ''
    • Questo è utile, ma non funziona così com’è. Ho dovuto cambiare “.codice()” per “.summernote(‘codice’)” per funzionare correttamente.
    • Nella versione attuale, non sembra essere come @AustinBest detto. Qui: hub.readthedocs.io/it/stabile/attività/global/plugins/… ho trovato la mia strada in una versione precedente. Credo che il summernote API è cambiato, ma non so in che versione specifica.

Lascia un commento