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
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
„It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
[HTML Design Constraints: Logical Markup]