Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776

    CodeMirror problema editando codice che contiene tag textarea

    Ciao a tutti,

    utilizzo CodeMirror per editare del codice html.

    CodeMirror non fa altro che numerare le linee di una textarea e cambiare i colori rendendo il codice che si sta editando più leggibile, differenziando quelli che sono i tag di apertura, di chiusura, le virgolette, insomma rende il codice più facile da leggere.

    Il problema sta nel fatto che ho la necessita di utilizzare una textarea dentro di una textarea.
    Se io ho del codice tipo
    codice HTML:
    <p>Ciao</p>
    Non ci sono problemi.
    Quando però ho questo codice:
    codice HTML:
    <textarea>Ciao pippo</textarea>
    <p>Ciao</p>
    Il tag </textarea> chiude il textarea che lo contiene quindi non lo visualizzo correttamente se ricarico la textarea que uso per editare il codice, in pratica faccio questo:
    codice HTML:
    <textarea id="classe_code_mirror">
    <p>Ciao</p>
    </textarea>
    Oppure:

    codice HTML:
    <textarea id="classe_code_mirror">
    <textarea>Ciao pippo</textarea>
    <p>Ciao</p>
    </textarea>
    In questo ultimo caso in pratica il primo tag di chiusura del textarea (</textarea>) chiude il primo tag di apertura del textarea (<textarea>) e:
    <p>Ciao</p>
    </textarea>

    ...rimangono fuori!

    Spero di essermi spiegato, ci sono delle soluzioni?

    Grazie,
    Roberto

  2. #2
    Utente di HTML.it L'avatar di ninja72
    Registrato dal
    May 2020
    residenza
    -
    Messaggi
    319
    Prova a passare il contenuto del tuo codice dal tuo script javascript.
    codice:
    <script>
            let editor= document.getElementById("editor");
            editor.innerHTML = `<textarea id="classe_code_mirror">
    <textarea>Ciao pippo</textarea>
    <p>Ciao</p>
    </textarea>
                `;
            let cm = new CodeMirror.fromTextArea(editor, {
                mode: "javascript",
                styleActiveLine: true,
                lineNumbers: true,
                lineWrapping: false,
                theme: "material"
            });
    
        </script>
    Ultima modifica di ninja72; 01-10-2020 a 19:47

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Quote Originariamente inviata da ninja72 Visualizza il messaggio
    Prova a passare il contenuto del tuo codice dal tuo script javascript.
    codice:
    <script>
            let editor= document.getElementById("editor");
            editor.innerHTML = `<textarea id="classe_code_mirror">
    <textarea>Ciao pippo</textarea>
    <p>Ciao</p>
    </textarea>
                `;
            let cm = new CodeMirror.fromTextArea(editor, {
                mode: "javascript",
                styleActiveLine: true,
                lineNumbers: true,
                lineWrapping: false,
                theme: "material"
            });
    
        </script>
    Non c'è un altro modo, vero?
    Il mio problema è che la pagina si renderizza direttamente da php e viene restituita direttamente così, dovrei purtroppo effettuare un cambio abbastanza grosso in tutta la struttura per poter realizzare quello che dici!
    É un form che comunque possono utilizzare solo gli amministratori(il cui contenuto della textarea realizza un form per gli utenti), sarebbe sufficente anche sapere di dover commentare in un certo modo la textarea all'interno.
    Stavo pensando di sostituire durante l'iserimento la parola textarea con un'altra...

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,658
    Quote Originariamente inviata da robynosse Visualizza il messaggio
    É un form che comunque possono utilizzare solo gli amministratori(il cui contenuto della textarea realizza un form per gli utenti), sarebbe sufficiente anche sapere di dover commentare in un certo modo la textarea all'interno.
    Stavo pensando di sostituire durante l'inserimento la parola textarea con un'altra...
    visto che mettere una textarea in un'altra è un errore grave di marcatura, la soluzione può essere utilizzare un tag di comodo. sempre che l'editor sia d'accordo.
    oppure provare a inserirla come commento: <!--textarea></textarea-->

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Ok, grazie!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.