Scripte laden nur bei Einbinden am Ende des Dokuments ganz
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
abhilfe
auftritt
beobachten
code
datei
dokument
element
ende
existieren
fehl
fehler
funktion
laden
langer fehlersuche
problem
schaffen
schlagen
url
zugreifen
zugriff
-
Hallo,
kann es tatsächlich sein, dass manche Browser die eingebundenen JavaScript-Dateien nur laden, wenn sie am Seitenende statt im Head eingebunden sind? Das Phänomen konnte ich nämlich neulich bei einer meiner Seiten beobachten und nach langer Fehlersuche und rumprobieren habe ich die Scripts, die ich kurz zuvor von
kurz vor</body></html>
verschoben hatte, wieder zurück nach unten verschoben, und es lief alles perfekt wie vorher.</head>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Vermutlich greifst du mit Javascript sofort auf irgendwelche Elemente aus dem Body zu. Bindest du das Script im Head ein, sind diese Elemente aber noch nicht geladen und die Zugriffe schlagen fehl. Wenn du das Script am Ende des Body einbindest, sind schon alle Elemente bekannt.
Falls das dein Problem ist, könntest du damit Abhilfe schaffen:document.addEventListener("DOMContentLoaded", function() { // Deine Zugriffe auf das Dokument })
Schreibe das, was sofort (also nach dem Laden) die Seite verändert in die Funktion. Diese wird erst dann ausgeführt, wenn alle Elementknoten geladen sind und es sollte keine Fehler geben. -
Kannst bitte einen Beispielcode posten, bei dem das auftritt?
fuerderer hat natürlich recht. Es könnte sein, dass du auf Elemente zugreifen möchtest, die noch gar nicht existieren. Ist ohne Code aber reines raten. -
fuerderer schrieb:
Vermutlich greifst du mit Javascript sofort auf irgendwelche Elemente aus dem Body zu. Bindest du das Script im Head ein, sind diese Elemente aber noch nicht geladen und die Zugriffe schlagen fehl. Wenn du das Script am Ende des Body einbindest, sind schon alle Elemente bekannt.
Aaah, okay, klar, jetzt klappt es auch. Vielen Dank!
Falls das dein Problem ist, könntest du damit Abhilfe schaffen:document.addEventListener("DOMContentLoaded", function() { // Deine Zugriffe auf das Dokument })
Schreibe das, was sofort (also nach dem Laden) die Seite verändert in die Funktion. Diese wird erst dann ausgeführt, wenn alle Elementknoten geladen sind und es sollte keine Fehler geben.
Das hätte ich mir eingentlich denken müssen -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage