Aloha ;)
Klingt praktikabel. Allerdings scheint das Verhalten des noscript-Elements im Falle, dass JS zur Verfügung steht, nicht genau definiert zu sein. Dieser Code gibt nur in Firefox das gewünschte Resultat „Hallo Welt!“ aus. Die Chromioiden (Chromium, Opera, Vivaldi) geben nur „Hallo <b>Welt</b>!“ aus.
Stimmt. Demnach vielleicht dann doch eher ein block-Element, das durch JavaScript sofort unsichtbar (display:none
) geschaltet wird statt dem noscript
.
Übrigens: Das liegt nicht daran, dass das Verhalten nicht genau definiert ist. Die Spec ist hier sehr präzise. Leider ist das Element ziemlich verdorben, historisch bedingt. Das führt dazu, dass das Verhalten der Chromioiden, wie du so schön sagtest, das Richtige ist, denn falls JS aktiviert ist, gilt:
„The noscript element must contain only text“
Was erklärt, warum die Chromioiden hier Spec-konform die Zeichen < und > zu < bzw. > umwandeln.
Andere Möglichkeit, vielleicht sauberer als das möglicherweise blinkende Blockelement-Experiment:
Den iframe falls Javascript funktioniert einfach schnell mit Javascript erzeugen. So viel Code ist das nun auch wieder nicht, und immerhin tritt dann trotzdem keine Redundanz im HTML auf.
@edit: ich hab das mal so zusammengefasst.
Grüße,
RIDER