Hallo Felix,
Liebe JavaScript-Spezialisten,
da fühle ich mich nur bedingt angesprochen, aber immerhin ...
Da mir window.onload natürlich bei entsprechend langsamen Verbindungen "zu lange dauert", vor allem dann, wenn viele referenzierte (Grafik-)Dateien nachzuladen sind, möchte ich natürlich etwas wie onDomReady haben, aber ohne jetzt alle meine JavaScripte umschreiben zu müssen. Ein Updaten der Scripte, die ich z.T. als eigenständige Werke entwickle, würde sich dadurch nur unnötig verkomplizieren. Daher dachte ich mir, window.onload() manuell auszuführen, nachdem der <body> des Dokuments komplett geladen wurde.
Das kann man natürlich tun.
<body>[...]
<script type="text/javascript">//<![CDATA[
> ~~~javascript
// Jetzt window.onload ausführen, um damit onDomReady zu simulieren
> if (typeof window.onload == "function")
> window.onload();
> window.onload = function () { return false; };
//]]></script>
</body>
Dieser Code wird vermutlich am \*Ende\* des body-Elements eingesetzt?
> Bis jetzt ist mir auf keiner Seite aufgefallen, dass es irgendwelche Störungen oder gar Fehlermeldungen gegeben hätte... oder sieht jemand in dieser Vorgehensweise irgendwelche Probleme, die ich vielleicht übersehen haben könnte?
Ja. Bestimmte Dokumenteigenschaften wie z.B. Abstand oder Position gewisser Elemente können sich abhängig von der Größe der dazwischenliegenden img-Elemente ändern. Fragst du also solche Werte ab, bevor die Bilder geladen sind, ermittelst du eventuell falsche Werte. Ganz offensichtlich wird es, wenn du auf Eigenschaften noch nicht geladener Bilder zugreifst.
Wenn dein Handler \*wirklich\* onload aufgerufen wird, muss er sich um solche Gemeinheiten ja nicht mehr sorgen - zu dem Zeitpunkt sind alle Objekte da und die Maße stehen fest.
Ein anderer Schönheitsfehler könnte sein, dass dein onload-Handler nach dem Feritgladen des Dokuments und der eingebundenen Ressourcen ein zweites Mal aufgerufen wird.
So long,
Martin
--
Abraham sprach zu Bebraham: Kann i mal dei Cebra ham?