Ziemlich sicher, dass es für nervige Entwickler verwendet wurde, die HTML-Parser schreiben, da dies gültig ist (und von Google nicht weniger verwendet wird):<xmp style="display:none"><!-- do not remove the plaintext nor xmp tags --><plaintext/><xmp>.</xmp>
Akiva
Antworten:
33
Eine schnelle Google-Suche in W3C zeigt, dass diese XMPfür die Anzeige von vorformatiertem Text in HTML 3.2 und früheren Versionen eingeführt wurde . Als W3C das XMPTag ablehnte, schlug es vor, das PRETag als bevorzugte Alternative zu verwenden.
Tatsächlich wurden sie in der HTML 3.0-Referenz bereits als "veraltet" markiert. w3.org/MarkUp/html3/html3.dtd vom 1. August 1995. Dies zitiert übrigens auch den genauen Grund, warum es veraltet ist (dies wäre die Antwort auf die zweite Frage des OP).
Herr Lister
1
pre ist keine Alternative xmp zitiert den gesamten enthaltenen Text. Ideal zum Debuggen. Nicht sicher. Funktioniert überall AFAIK.
XMPund PREunterscheiden. Der Inhalt von PRETags wird wie folgt formatiert:
Der Inhalt wird mit einer festen Schriftart angezeigt.
Alle Leerzeichen bleiben erhalten, und
Jeder Zeilenumbruch beginnt eine neue Zeile.
Wenn Sie Sonderzeichen wie einschließen mögen <, >und &innerhalb von PRETags, müssen sie entkommen sein , so dass sie durch den Browser nicht besondere Interpretation sind.
Im Gegensatz dazu muss der Inhalt von XMPTags nicht maskiert werden.
Die einzige Zeichenfolge, die nicht in XMPTags enthalten sein kann, ist das XMPEnd-Tag ( </XMP>).
XMPwird weiterhin von den von mir getesteten Browsern unterstützt. Sie können es mit xmp.html versuchen . Zeigen Sie die Quelle an, um die Tags anzuzeigen.
Ich habe vier Arten der Darstellung von Code vorgestellt. Textarea scheint der Gewinner zu sein. Hier ist meine Bewertung: dadinck.x10.mx/code_example.html
dadinck
2
Sicherheitshinweis: XMP ist KEIN XSS-Schutz - sein einziger Zweck besteht darin, eine statische HTML-Seite selbst zu erstellen und Code
anzuzeigen,
@dadinck, Ihr xml.html Link verlinkt auf "Das mit dieser Website verknüpfte Webhosting-Konto wurde vorübergehend gesperrt!" ....
Pacerier
@ Pacerier Entschuldigung. Das war nur vorübergehend. Es ist wieder da.
Dadinck
1
@Boldewyn <plaintext>ist ebenso veraltet wie das <xmp>Tag, also ein No-Go. Die wahrscheinlich beste Alternative ist <textarea>Tag.
Agnius Vasiliauskas
18
XMP macht einige Dinge, die PRE nicht unterstützt. Ich bin immer noch auf XMP angewiesen, es gibt keinen Ersatz.
Vielleicht könnten Sie erklären, warum PRE kein Ersatz für XMP ist. So wie es aussieht, ist dies keine wirkliche Antwort.
Anders R. Bystrup
17
<xmp>ignoriert HTML-Tags und Entitäten; <pre>nicht.
Álvaro González
1
Wie wäre es <textarea />als Ersatz?
James Love
1
Wie wäre es mit der Verwendung von Server-Side-Script-Escape? : P ................................................ ..........................................<pre><?php echo htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES); ?></pre>
jave.web
2
Versuchen Sie, eine XML-Ausgabe im Browser mit xmp und dann vorab zu debuggen. xmp zeigt die korrekte Ausgabe an.
Șerban Ghiță
5
<xmp>wird mit strapdown.js bei der Formatierung der Markdown-Notation verwendet. Der Name Strapdown kombiniert die Begriffe Bootstrap und Markdown .
<!DOCTYPE html><html><title>Example</title><xmptheme="united">
## Example
- note one
- note two
- note three
</xmp><scriptsrc="http://strapdownjs.com/v/0.2/strapdown.js"></script></html>
Ich benutze das xmpTag immer noch zum Debuggen var_dump();in PHP. Ich kann mich einfach nicht erinnern, das preTag aus irgendeinem Grund verwendet zu haben.
Ich denke, es spielt keine Rolle, denn wenn Sie wirklich Text ausgeben möchten, sollten Sie ihn textareamit dem readonlyAttribut verwenden.
Es ist sehr praktisch für diesen Zweck. Da var_dump()nichts zurückgegeben wird, benötigen Sie Ausgabepufferfunktionen, um die Ausgabe in HTML zu codieren. <xmp>ist eine schnelle Alternative zum Schreiben einer Wrapper-Funktion und funktioniert überall.
<xmp style="display:none"><!-- do not remove the plaintext nor xmp tags --><plaintext/><xmp>.</xmp>
Antworten:
Eine schnelle Google-Suche in W3C zeigt, dass diese
XMP
für die Anzeige von vorformatiertem Text in HTML 3.2 und früheren Versionen eingeführt wurde . Als W3C dasXMP
Tag ablehnte, schlug es vor, dasPRE
Tag als bevorzugte Alternative zu verwenden.Update: http://www.w3.org/TR/REC-html32#xmp , http://www.w3.org/MarkUp/html-spec/html-spec_5.html#SEC5.5.2.1
quelle
<xmp>
nicht sicher ist: html5sec.org/#134XMP
undPRE
unterscheiden. Der Inhalt vonPRE
Tags wird wie folgt formatiert:Wenn Sie Sonderzeichen wie einschließen mögen
<
,>
und&
innerhalb vonPRE
Tags, müssen sie entkommen sein , so dass sie durch den Browser nicht besondere Interpretation sind.Im Gegensatz dazu muss der Inhalt von
XMP
Tags nicht maskiert werden.Die einzige Zeichenfolge, die nicht in
XMP
Tags enthalten sein kann, ist dasXMP
End-Tag (</XMP>
).XMP
wird weiterhin von den von mir getesteten Browsern unterstützt. Sie können es mit xmp.html versuchen . Zeigen Sie die Quelle an, um die Tags anzuzeigen.quelle
<plaintext>
ist ebenso veraltet wie das<xmp>
Tag, also ein No-Go. Die wahrscheinlich beste Alternative ist<textarea>
Tag.XMP macht einige Dinge, die PRE nicht unterstützt. Ich bin immer noch auf XMP angewiesen, es gibt keinen Ersatz.
quelle
<xmp>
ignoriert HTML-Tags und Entitäten;<pre>
nicht.<textarea />
als Ersatz?<pre><?php echo htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES); ?></pre>
<xmp>
wird mit strapdown.js bei der Formatierung der Markdown-Notation verwendet. Der Name Strapdown kombiniert die Begriffe Bootstrap und Markdown .<!DOCTYPE html> <html> <title>Example</title> <xmp theme="united"> ## Example - note one - note two - note three </xmp> <script src="http://strapdownjs.com/v/0.2/strapdown.js"></script> </html>
quelle
Ich benutze das
xmp
Tag immer noch zum Debuggenvar_dump();
in PHP. Ich kann mich einfach nicht erinnern, daspre
Tag aus irgendeinem Grund verwendet zu haben.Ich denke, es spielt keine Rolle, denn wenn Sie wirklich Text ausgeben möchten, sollten Sie ihn
textarea
mit demreadonly
Attribut verwenden.quelle
var_dump()
nichts zurückgegeben wird, benötigen Sie Ausgabepufferfunktionen, um die Ausgabe in HTML zu codieren.<xmp>
ist eine schnelle Alternative zum Schreiben einer Wrapper-Funktion und funktioniert überall.Siehe http://www.w3.org/Bugs/Public/show_bug.cgi?id=12235
Für HTML5. Laut dem HTML5-Editor (Kommentare 11 und 12) war es in beiden Fällen ein sehr enger Aufruf.
quelle
Ich habe verwendet
<textarea>
, was den HTML-Code in eine ordentliche Box legt und den Code klar als anders als den Text davor oder danach definiert.<textarea><b>boldtext</b><textarea>
quelle
Funktioniert immer noch, um rohes HTML anzuzeigen. Wenn Sie es im Skript verwenden, brechen Sie das Start-Tag.
var stuff='<xmp'+'>this is shown as is<br/>hello</xmp>'; document.getElementById("x").innerHTML=stuff;
<div id="x"></div>
quelle