5 Stimmen

XHTML und Code innerhalb von Textareas

Auf einer Website von mir, in der ein Textfeld für die Übermittlung verwendet wird, habe ich Code, der in etwa wie folgt aussehen kann:

<textarea><p>text</p></textarea>

Bei der Validierung (XHTML 1.0 Transitional) tritt dieser Fehler auf,

line 88 column 50 - Error: document type does not allow element "p" here

Wenn dies keine gültige Methode ist, was wird dann erwartet? Ich könnte einen Workaround mit einem JavaScript-Ereignis onload tun, aber das scheint unnötig. Unabhängig davon hat dies keinen Einfluss auf die Ausgabe, aber ich würde lieber meine Website validieren.

8voto

Owen Punkte 79611

Gibt es einen Grund dafür, dass Sie versuchen, eine <p> innerhalb <textarea> ? wie Sie herausgefunden haben, ist es nicht gültig. Wenn es für Anzeigezwecke ist (d.h., um Code anzuzeigen), sollte es übersetzt werden:

<textarea>&lt;p&gt;text&lt;/p&gt;</textarea>

Abgesehen von Validierungsproblemen kann die Anzeige beliebiger Tags (die nicht ordnungsgemäß wie oben kodiert sind) ein großes Sicherheitsproblem darstellen.

3voto

nickf Punkte 517253

Wäre ein CDATA-Abschnitt eine Option für Sie?

<textarea><![CDATA[
    <p>Blah</p>
]]></textarea>

1voto

Ross Punkte 44536

Liege ich richtig in der Annahme, dass Sie versuchen, einen WYSIWYG-Editor, wie TinyMCE zu machen? Was die meisten zu tun scheinen, ist die Verwendung von HTML-Entities in der textarea und über JavaScript in HTML umwandeln.

0voto

acrosman Punkte 12575

Sie können die Tags im Textbereich weglassen, und wenn Sie neue Zeilen benötigen, verwenden Sie \n Andernfalls verwenden Sie &lt;p&gt; y &lt;/p&gt; an die Stelle Ihrer Tags setzen.

0voto

Sie könnten eine onload-Funktion verwenden, um die Start- und End-Tags des Textarea-Inhalts zu ersetzen.

eg: replace < > with &lt; &gt;

<textarea cols="" rows="">&lt;p&gt;text&lt;/p&gt;</textarea>

<p>Text</p>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X