Onload nicht in Body?
Thorsten
- javascript
0 Jeena Paradies2 Ashura-1 Marian1 Struppi0 Thorsten
Hi,
kann man irgendwie etwas Onload machen ohne es in Body zu notieren? Ich würde gerne Onload etwas in ein Formular schreiben aber da es sich um Templates handelt kann ich mit Onload nicht im Body arbeiten (und habe leider nicht gefunden wie ich es sonst machen könnte).
Vielen Dank schonmla für euere Hilfe
Gruß
Thorsten
Hallo Thorsten.
kann man irgendwie etwas Onload machen ohne es in Body zu notieren?
Du meinst hier sicher, ohne das entsprechende Attribut im body-Tag zu notieren.
Ich würde gerne Onload etwas in ein Formular schreiben aber da es sich um Templates handelt kann ich mit Onload nicht im Body arbeiten (und habe leider nicht gefunden wie ich es sonst machen könnte).
Nun, du kannst in JS auf jedes Element im Dokument zugreifen. Tust du dies, so stellt dies einen Zugrif auf einen Elementknoten (wecher ein Objekt ist) im Dokumentenbaum dar. Zudem haben HTML-Elementobjekte die Eigenschaft, dass sie jederzeit über alle in ihnen erlaubten Attribute in Form von Eigenschaften verfügen.
Was heißt dies nun für dich? Nun, du könntest den Wert des title-Attributes des ersten Absatzes im Dokument folgendermaßen setzen:
document.[link:http://de.selfhtml.org/javascript/objekte/document.htm#get_elements_by_tag_name@title=getElementsByTagName]('p')[0].title = 'Ich bin ein Titel.';
Nun aber zum für dich relevanten: genau so wie alle anderen Attribute sind auch die Eventhandler lediglich Eigenschaften in JS. Du *könntest* dein Vorhaben also wie folgt erreichen:
document.body.onload = function() { /* Was auch immer gemacht werden soll. */}
(Natürlich könntest du für den Zugriff auf das body-Element auch document.getElementsByTagName('body')[0] notieren, aber warum sollte man vorgefertigte Objekte nicht nutzen?)
Das Problem hierbei: der betreffende JS-Code, in dem obiges notiert wird, befindet sich üblicherweise im head-Bereich bzw. in einer externen JS-Datei. Deshalb greifst du hier auch auf ein Objekt zu, was zum Zeitpunkt der Verarbeitung des JS-Codes noch gar nicht exisitiert.
Ein Objekt, was jedoch *immer* und ungeachtet des Status des Dokuments zur Verfügung steht, ist das window-Objekt. Ebenso wie andere HTML-Elementobjekte verfügt auch dieses über eine onload-Eigenschaft.
Mit dieser solltest du also arbeiten.
Willst du mehrere Funktionen beim Laden gleichzeitig ausführen, oder kannst du nicht kontrollieren, was beim Laden ausgeführt werden soll, so solltest du mit der addEventListener-Eigenschaft des window-Objektes arbeiten. (Eine ausgearbeitete Version gibt es im Archiv zu finden.)
Einen schönen Samstag noch.
Gruß, Ashura
Hallo Thorsten,
kann man irgendwie etwas Onload machen ohne es in Body zu notieren? Ich würde gerne Onload etwas in ein Formular schreiben aber da es sich um Templates handelt kann ich mit Onload nicht im Body arbeiten (und habe leider nicht gefunden wie ich es sonst machen könnte).
Du kannst es einfach direkt in einen Javascript-Bereich (<script>) reinschreiben.
Viele Grüße aus Freiburg,
Marian
kann man irgendwie etwas Onload machen ohne es in Body zu notieren? Ich würde gerne Onload etwas in ein Formular schreiben aber da es sich um Templates handelt kann ich mit Onload nicht im Body arbeiten (und habe leider nicht gefunden wie ich es sonst machen könnte).
Ob du in dem Falle onload wirklich brauchst ist fraglich, es reicht das JS hinter dem Formular zu plazieren.
Eine sehr umfangreiche Lösung mit der du einem Event mehrere Funktionen zuweisen und innerhalb der Funktion mit this auf das Element zugreifen kannst, findest du hier http://therealcrisp.xs4all.nl/upload/addEvent3.html
Struppi.
Danke für euche Hilfe! Hat mich echt weitergebracht :)
Gruß
Thorsten