JavaScript document.documentElement.innerHTML - Head & Head+Body..?!

cumulonimbus8

Fleet Admiral
Registriert
Apr. 2012
Beiträge
19.475
Moin.

Beim Rumbasteln hatte ich den Inhalt von document.documentElement.innerHTML im Head ausgelesen. Zu meiner Überraschung war darin auch einzig das Element Head zu sehen.
Selber Code im Body liefert Haed+Body.

Was ist das nun wieder für eine Logik? Es läge an mir dor abzufragen wo ich die Info auch geliefert bekomme, aber warum bekomme ich im Head nur den Head? Dumm, falls ich den ganze Code brauchen sollte.
Noch witziger wenn ich mich damit zufriedengäbe und verlangte im Body auch nur den Body zu bekommen. Oder nach Aufforderung jeweils Haed, Body, beide.

Gibt es da Optionen?

CN8
 
Wieso schreiben die Leute nicht einfach bei konkreten Fragen Code, damit man gleich ein konkretes Bild hat, was genau gemacht wurde.
 
  • Gefällt mir
Reaktionen: new Account()
Das passiert, weil dein Code ausgeführt wird, sobald der Skript-Tag fertig geladen ist.

Der ganze Inhalt im Body ist zu der Zeit noch nicht fertig geparst / "eingelesen".

Die eine Lösung ist, wie sowieso empfohlen, dein Skript am Ende des Bodys einzubinden:
HTML:
<!DOCTYPE html>
<html>
    <head>
        ...
    </head>
    <body>
        ...
       
        <script>...</script>
    </body>
</html>

Das sorgt dafür, dass der Benutzer schneller Inhalte angezeigt bekommt, weil erst die Inhalte, dann das Skript geladen wird und gleichzeitig auch dafür, dass dein Skript erst ausgeführt wird, wenn der Browser schon alles geladen hat.

Eine andere Lösung ist, das "DOMContentLoaded"-Event zu benutzen. Das wird ausgelöst, wenn das DOM fertig geladen wurde. Die Verwendung sieht dann in etwa so aus:

(nicht IE kompatibel)
Javascript:
document.addEventListener("DomContentLoaded", function(){
    // Dein Code
})

Lg
 
  • Gefällt mir
Reaktionen: mastaqz
Wieso schreiben die Leute nicht einfach bei konkreten Fragen Code, damit man gleich ein konkretes Bild hat, was genau gemacht wurde
’tschildigung, aber der Befehl strht im Betreff - wie eloquent möge die berühmte autogestartete (fcunction {})() dargeboten werden document.documentElement.innerHTML per alert anzuzeigen?

Der ganze Inhalt im Body ist zu der Zeit noch nicht fertig geparst / "eingelesen".
Klingt plausubel - und irgendwie auch nicht: warum schafft es dann der Befehl den ganzen Head zu erfassen?

CN8
 
cumulonimbus8 schrieb:
’tschildigung, aber der Befehl strht im Betreff
Es geht um den gesamten Code.
Und was ausgegeben wurde ist überhaupt nicht klar erkennbar. Hätte man mit entsprechender Formatierung deutlich machen können.
Du musst Dir eins vor Augen führen. Du stellst die Fragen an die Forenteilnehmer. Du bist also derjenige der etwas will. Nämlich das andere Ihre Zeit aufwenden, um Dir zu helfen.
Es liegt also in Deinem Interesse, das Deine Frage und Problembeschreibung gut verständlich und möglichst vollständig ist.
Weil auch die Chance steigt brauchbare Antworten zu bekommen und es auch eine Frage des Respekts und Anstandes ist, sein Anliegen auch entsprechend zu formulieren und auszugestalten (man würde ja eigentlich annehmen, nach über 9000 Beiträge hat ein Forumsteilnehmer raus, wie der Hase läuft).

Aber wenn Du Dir nicht mal die Mühe machst Deine Frage ordentlich zu stellen, sondern sie eher lieblos ins Forum kippst, warum sollte sich dann jemand der vielleicht eine Antwort hätte sich die Mühe machen sie Dir zu geben?

Denk mal drüber nach.

cumulonimbus8 schrieb:
und irgendwie auch nicht: warum schafft es dann der Befehl den ganzen Head zu erfassen?
Ähm. Weil das <HEAD> Tag bestimmt schon eingelesen wurde, bevor Dein Skriptschnipsel kommt, welches innerhalb von <HEAD> ... </HEAD> steht?
Oder ist Dir die Logik auch zu hoch?

Aber eigentlich ist es auch im praktisch jedem Javascript Tutorial / Dokumentation erläutert, das man auf Inhalte (sprich DOM etc.) nur dann zugreifen sollte, wenn alles geladen ist. Genau um solche Problematiken, die schnell in unvorhersehbaren Verhalten enden können, zu vermeiden.

Man könnte fast auf die Idee kommen, die scheust Dokumentationen zu Javascript zu lesen und belästigst lieber die Helfer im Forum mit Deinen Problemen.
 
  • Gefällt mir
Reaktionen: BlackMark und abcddcba
Zurück
Oben