Rolf B: HTML-Code ungesampelt auf Webseite zeigen - geht das? NICE TO HAVE

Beitrag lesen

problematische Seite

Hallo Matthias Scharwies,

xmp

Wird auch heute noch verstanden, hat aber - zumindest in Chrome - nicht mehr die "Parse mich nicht" Semantik.

HTML-Maskierer

Ist etwas, was ich auch schon überlegt hatte. Die Frage war dann, wo ich den Quellcode hinterlege - und kam auf ein <script> Element. Und dann fiel mir auf: Das kann man ja auch sichtbar machen.

Ein Problem entsteht nur, wenn der Beispielcode <script></script> enthält, in dem Moment geht es schief, weil der script-Block vorzeitig beendet wird.

Die Alternative könnte ein <template> Element sein, aber dann braucht man wirklich JavaScript, um den Template-Inhalt in den Code-Rahmen zu übertragen.

Ein HTML Maskierer, um den HTML Code darzustellen, ist allerdings nicht erforderlich. Das Wiki-Beispiel ist in dieser Beziehung mehrfacher Müll - sorry, falls es von Dir stammt.

  1. Der Inhalt der textarea müsste im click-Handler ausgelesen werden, nicht vor dem click-Handler. So, wie es jetzt ist, wird eine Benutzereingabe nicht verarbeitet.
  2. Unclean Code: htmlSpecialChars tut zu viel, es darf nur die Maskierung ausführen. Die Zuweisung an das output-Element gehört davon getrennt
  3. Das Ergebnis von str.replace müsste wieder an str zugewiesen werden
  4. Die Maskierung ist komplett unnötig, wie sich durch die fehlende Zuweisung zeigt. Auslesen des innerHTML einer Textarea liefert bereits HTML Symbole statt <&>, und wenn ich etwas an die innerText Eigenschaft eines Elements zuweise, brauche ich eh nicht zu maskieren
  5. innerText ist ein IE Erbe, besser ist textContent.

TL;DR: Ein HTML Maskierer ist in JavaScript zumeist überflüssig. Ich habe jederzeit die Wahl zwischen innerHTML und textContent, je nach Bedarf.

Wenn ich mich bis 15:00 nicht drum gekümmert habe, komme ich erst morgen dazu.

Rolf

--
sumpsi - posui - obstruxi