ho bisogno di essere in grado di rendere alcuni tag HTML all'interno di una textarea (vale a dire <forte>, <i>, <u>, <un>), ma textareas solo interpretare il loro contenuto come testo. C'è un modo semplice per farlo senza fare affidamento su librerie/plugin esterni (sto usando jQuery)? Se no, conosci qualche plugin jQuery che potrei usare per fare questo?rendering HTML all'interno textarea
risposta
Questo non è possibile fare con un textarea
. Quello che state cercando è un content editable div, che è molto presto fatto:
<div contenteditable="true"></div>
div.editable {
width: 300px;
height: 200px;
border: 1px solid #ccc;
padding: 5px;
}
strong {
font-weight: bold;
}
<div contenteditable="true">This is the first line.<br>
See, how the text fits here, also if<br>there is a <strong>linebreak</strong> at the end?
<br>It works nicely.
<br>
<br><span style="color: lightgreen">Great</span>.
</div>
@Tim, in effetti lo è! A volte sei bloccato pensando a jQuery e finisci per renderlo più complicato di quanto deve essere. Ho aggiornato la mia risposta. Grazie per avermi illuminato :) – mekwall
è un vero peccato che tu non possa praticamente usare questo senza l'uso di javascript per inviare le tue modifiche usando ajax o copiarle in un modulo di input. Se qualcuno avesse trovato il modo di farlo sarei davvero interessato! – Ben
@TimDown e più breve: '
';) – yckartCon un div modificabile è possibile utilizzare il metodo document.execCommand
(more details) per fornire facilmente il supporto per i tag specificati e per alcune altre funzionalità.
#text {
width : 500px;
\t min-height : 100px;
\t border : 2px solid;
}
<div id="text" contenteditable="true"></div>
<button onclick="document.execCommand('bold');">toggle bold</button>
<button onclick="document.execCommand('italic');">toggle italic</button>
<button onclick="document.execCommand('underline');">toggle underline</button>
Questo non funziona in alcuni browser aggiungendo semplicemente questo come nota AS '16 –
Ho lo stesso problema, ma in senso inverso, e la seguente soluzione. Voglio mettere html da un div in una textarea (in modo da poter modificare alcune reazioni sul mio sito, voglio avere la textarea nella stessa posizione.)
<div id="msg500">here some <strong>html</strong> <i>tags</i>.</div>
di mettere il contenuto di questo div in un textarea Uso:
var content = $('#msg500').text();
$('#msg500').wrapInner('<textarea>'+content+'</textarea>');
Un addendum a questo. È possibile utilizzare le entità carattere (come la modifica di in <div>
) e la renderizzazione nella textarea. Ma quando viene salvato, il valore della textarea è il testo come reso. Quindi non è necessario decodificare. Ho appena provato questo attraverso i browser (cioè indietro a 11).
I mi piacerebbe davvero che funzionasse per me, ma non è così. Per esempio ' 'non viene visualizzato come HTML. Sono su Chrome 46. – sirdank
Hm. Ho copiato quella stringa direttamente in un documento html e questo mi restituisce correttamente la markup in OS X 10.11.1 di Chrome Version 48.0.2552.0 dev (64-bit). Quindi forse è un problema di versione. – axlotl
Non funziona neanche per me. –
provare questo esempio su JSFiddle
<style>
.editable {
width: 300px;
height: 200px;
border: 1px solid #ccc;
padding: 5px;
resize: both;
overflow: auto;
}
</style>
<div class="editable" contenteditable="true"></div>
<button class="bold">toggle red</button>
<button class="italic">toggle italic</button>
<script>
function toggleRed() {
var text = $('.editable').text();
$('.editable').html('<p style="color:red">'+text+'</p>');
}
function toggleItalic() {
var text = $('.editable').text();
$('.editable').html("<i>"+text+"</i>");
}
$('.bold').click(function() {
toggleRed();
});
$('.italic').click(function() {
toggleItalic();
});
</script>
Edit by Jeffrey Crowder - Web Developer programmatore/Windows
ho aggiunto un violino JS del codice.
questo è possibile con <textarea>
l'unica cosa che dovete fare è usare Summernote WYSIWYG editor
interpreta i tag HTML all'interno di una textarea (vale a dire <strong>
, <i>
, <u>
, <a>
)
Non usa textarea. Usa div, che non può essere inviato con un modulo. –
Funziona con textarea, prova a dare id a textarea invece di div. Ho creato un intero progetto usando textarea e summernote. Funziona bene! –
Qual è il punto? Si comporta come un ckeditor se viene utilizzata textarea. Impossibile eseguire il rendering di tag HTML come richiesto. –
- 1. HTML TextArea ridimensiona automaticamente
- 2. Segnaposto textarea HTML non visualizzato
- 3. Rendering html nell'applicazione Swing
- 4. HTML: come mantenere la formattazione in textarea?
- 5. Numeri di rendering HTML mobile
- 6. Tornando rendering Html tramite Ajax
- 7. rendering HTML in reagiscono Native
- 8. Rendering parziale in HTML/JavaScript
- 9. Rendering HTML + Javascript lato server
- 10. Rendering di <textarea /> utilizzando annotazioni di dati
- 11. codemirror-textarea ridimensionabile come una textarea standard
- 12. Soluzione temporanea per Outlook HTML HTML Rendering bug (spazi orizzontali)
- 13. Evitare il rendering di commenti in HTML
- 14. AS3 Flash - rendering html tramite ExternalInterface
- 15. Cakephp3: Rendering/valutazione HTML all'interno dell'etichetta formhelper
- 16. rendering html nella stringa di stato
- 17. Grails: Rendering modello da taglib come HTML
- 18. Rendering HTML su tacche X-Axis
- 19. Rendering di oggetti C# in HTML
- 20. Rendering SVG tramite Angular ng-bind-html
- 21. Escaping una stringa con Blade, rendering HTML
- 22. Come rendering HTML grezzo a Phoenix quadro
- 23. Rendering personalizzato Selectize.js con html statico
- 24. Rendering HTML molto lento in NSAttributedString
- 25. rendering di contenuti HTML in ionico
- 26. Rendering HTML nella variabile usando Jade
- 27. Come rendering HTML con i modelli angolari
- 28. r tavolo lucido non rendering HTML
- 29. html - Una riga di textarea è di quanto altezza?
- 30. Impostazione valore di una textarea di un modulo HTML?
L'unico modo per farlo sarà quello di sovrapporre il tuo markup HTML sul contenuto del tag textarea tramite trucchi di posizionamento CSS. Niente ti aiuterà a convincere il browser a rendere diversamente il contenuto della textarea. (Perché esattamente "hai bisogno" di fare questo?) – Pointy
Ho solo bisogno che l'utente sia in grado di aggiungere alcuni stili di formattazione al testo che inserisce (proprio come quando scrivi un articolo su Wordpress).Semplicemente non ho bisogno di tutte le funzioni come l'allineamento del testo e così via, ma solo quei tag di base. –