Ich muss in der Lage sein, einige HTML-Tags in einem Textbereich zu rendern (nämlich <strong>, <i>, <u>, <a>), aber Textbereiche interpretieren ihren Inhalt nur als Text. Gibt es eine einfache Möglichkeit, dies zu tun, ohne sich auf externe Bibliotheken / Plugins zu verlassen (ich verwende jQuery)? Wenn nicht, kennen Sie ein jQuery-Plugin, mit dem ich dies tun könnte?
javascript
jquery
html
textarea
Der codierende Mönch
quelle
quelle
Antworten:
Dies ist mit a nicht möglich
textarea
. Was Sie suchen, ist ein inhaltsbearbeitbares Div, das sehr einfach zu erstellen ist:jsFiddle
quelle
contenteditable
ist eher ein Aufzählungsattribut als ein Boolesches Attribut (es gibt eineninherit
Status sowietrue
undfalse
), und ich denke , das bedeutet, dass die Angabe eines Werts obligatorisch ist, obwohl ich kein definitives Bit der Spezifikation finden kann, um dies zu bestätigen. MDN scheint jedoch zuzustimmen .contenteditable
ohne Wert den gleichen Wert wie interpretiertcontenteditable=""
, was wiederum der gleiche ist wiecontenteditable="true"
.textarea
. Wenn Sie<strong>someting</strong>
in die Geige tippen, erhalten Sie genau diesen Text. Der HTML-Code wird nicht angewendet.Mit einem bearbeitbaren div können Sie die Methode
document.execCommand
( weitere Details ) verwenden, um auf einfache Weise die Unterstützung für die von Ihnen angegebenen Tags und einige andere Funktionen bereitzustellen.quelle
Da du nur Rendern gesagt hast, kannst du das ja. Sie könnten etwas in dieser Richtung tun:
textarea
HTML rendern wird! Abgesehen vom Blinken beim Ändern der Größe, der Unfähigkeit, Klassen direkt zu verwenden und sicherstellen zu müssen, dass das Div imsvg
Format das gleiche Format hat wie das,textarea
damit das Caret korrekt ausgerichtet wird, funktioniert es!quelle
Ein Nachtrag dazu. Sie können Zeichenentitäten verwenden (z. B. Ändern
<div>
in<div>
), die im Textbereich gerendert werden. Wenn es jedoch gespeichert wird, ist der Wert des Textbereichs der gerenderte Text . Sie müssen also nicht entschlüsseln. Ich habe dies gerade über alle Browser hinweg getestet (dh zurück zu 11).quelle
<textarea> check for url <B>http://localhost/Dashboard.aspx</B> <BR> Tool Started at <B>11/10/2015 3:56:58 AM</B> <BR> .... </textarea>
nicht als HTML angezeigt. Ich bin auf Chrome 46.Ich habe das gleiche Problem, aber umgekehrt, und die folgende Lösung. Ich möchte HTML von einem Div in einen Textbereich einfügen (damit ich einige Reaktionen auf meiner Website bearbeiten kann; ich möchte den Textbereich am selben Ort haben.)
Um den Inhalt dieses Div in einen Textbereich zu setzen, benutze ich:
quelle
Versuchen Sie dieses Beispiel
quelle
Dies ist möglich,
<textarea>
wenn Sie nur den Summernote WYSIWYG-Editor verwenden müssenes interpretiert HTML - Tags in einem Textfeld (nämlich
<strong>
,<i>
,<u>
,<a>
)quelle