onFertigGeladen
Blaubart
- javascript
Hallo.
Ich bin gerade auf der Suche nach einem Eventhandler, der feuert, sobald das zugehörige HTML-Objekt im Elementbaum der Seite verfügbar ist. Bisher hab ich nichts dergleichen gefunden. Gibt es so etwas standardmäßig in Javascript oder muß ich doch zu einer der folgenden beiden Alternativen greifen?
1. Plaziere den Code, der auf das entsprechende Objekt zugreift, hinter diesem Objekt im HTML-Code.
Hier bin ich mir allerdings nicht sicher, ob dadurch wirklich _garantiert_ wird, daß das Objekt schon verfügbar ist. Feldversuche mit diversen Browsern legen aber die Vermutung nahe, daß dem so ist.
oder
2. Sollte ein Test mit z.B. getElementById() kein Objekt liefern, probier es nach kurzer Wartezeit nochmal und wiederhole diese Prozedur ggf. -- natürlich aber nicht unendlich oft.
Für Hinweise oder Alternativvorschläge wäre ich sehr dankbar.
Hallo Blaubart.
Ich bin gerade auf der Suche nach einem Eventhandler, der feuert, sobald das zugehörige HTML-Objekt im Elementbaum der Seite verfügbar ist. Bisher hab ich nichts dergleichen gefunden.
Ob es dies für einzelne Elemente allein gibt, weiß ich nicht, aber zumindest kannst du recht sicher sein, dass das jeweilige Element im Dokumentenbaum exisitiert, wenn dieser <http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onload@title=fertig geladen> ist.
Einen schönen Freitag noch.
Gruß, Ashura
Hallo,
Ich bin gerade auf der Suche nach einem Eventhandler, der feuert, sobald das zugehörige HTML-Objekt im Elementbaum der Seite verfügbar ist. Bisher hab ich nichts dergleichen gefunden. Gibt es so etwas standardmäßig in Javascript
Nein.
- Plaziere den Code, der auf das entsprechende Objekt zugreift, hinter diesem Objekt im HTML-Code.
Hier bin ich mir allerdings nicht sicher, ob dadurch wirklich _garantiert_ wird, daß das Objekt schon verfügbar ist. Feldversuche mit diversen Browsern legen aber die Vermutung nahe, daß dem so ist.
Ja, das ist nach den gängigen Tests, die mir bisher zu Ohren gekommen sind, gewährleistet.
- Sollte ein Test mit z.B. getElementById() kein Objekt liefern, probier es nach kurzer Wartezeit nochmal und wiederhole diese Prozedur ggf. -- natürlich aber nicht unendlich oft.
Das ist die übliche Methode, siehe Breaking onload limits, donFunction und JavaScript load placement.
Ich muss allerdings dazu sagen, dass ich mit dieser Methode schlechte Erfahrungen gemacht habe, sie ist nicht zuverlässig. Sie liefert zwar das Element, aber zu einem Zeitpunkt, an dem noch nicht alle Kindknoten zur Verfügung stehen.
Mathias
'Nabend.
Jau, vielen Dank für diese sehr informative Antwort. Da ich jedoch nicht ganz so große Datenberge durchforsten möchte wie du mit deinem Skript fürs Forum, ist die timerbasierte Methode möglicherweise doch eine brauchbare Option. Werd's mal ausprobieren.
Schönen Abend noch.