Tach auch!
Konkret auf dein Beispiel bezogen:
"Aus Sichtweise der Webbrowser"
MUSS eine DTD immer hart codiert als erstes im Dokument "zu finden" sein, da diese u.a. definiert, wie Browser CSS und Javascript (eben auch DOM-Manipulation) interpretieren und wie fehlertolerant sie dabei sind.
Ergo beist sich die Katze hier ...
Code: Alles auswählen
document.writeln('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">');
... in den Schwanz.
Ausnahmen wären bei XHTML-DTDs lediglich XML-Deklarationen, wenn eine andere Zeichencodierung als UTF-8 verwendet wird. Selbst das kann zu Problemen führen, denn ältere IEs verwenden automatisch den Quirks-Mode, wenn der Doctype nicht direkt in der ersten Zeile steht. Ferner gibt es bei XHTML kein document.write!
Einige Browser (z.B. Chrome) interpretieren keine Meta-Tags, wenn diese per JS geschrieben werden. Das kann zu unschönen side effects führen, wenn dadurch z.B. die Seiten-Codierung nicht korrekt gesetzt wird.
Wenn ein User kein JavaScript hat, sollte die Website trotzdem funktionieren.
Dies wird von heutigen Web-App-Entwicklern geflissentlich ignoriert und die Statistik gibt ihnen recht:
https://www.webhits.de = fast 100% JS aktiv
... unterschiedliche JavaScript-Engines, so dass man jedes Skript in jedem populären Browser testen sollte. Das erhöht den Entwicklungsaufwand.
Dafür gäb's jQuery und Co. - die kümmern sich automatisch um "Crossbrowserkompatibilität" von IE und echten Browsern.
Grüßken soweit!