Um Elemente beeinflussen zu können, müssen diese Elemente ja bereits existieren (deswegen onLoad). Alternativ kann man das Script direkt hinter den BODY-Starttag packen (Klasse für Regel mit Nachfahrenselektor) oder direkt in/oder zumindest hinter die konkret auszublendenden Objekte (um sie selbst einer passenden Klasse zuzuweisen, bzw. sie z.B. direkt mit style auszublenden).
Die beiden letztgenannten Alternativen wollte ich ja gerade eben vermeiden ;)
Oder eben, was ich vorschlug, man gibt das CSS bereits im HEAD mit JS selbst aus/legt es an. Da muß man nicht auf die Existenz der Elemente warten, sondern erledigt das vorher ...
Nach längerem Überlegen ist das wohl der sinnvollste Vorschlag, auch wenn er am Anfang etwas exotisch klang.
BTW: Davon abgesehen: Ist hier ausblenden überhaupt richtig, oder wäre es nicht sinnvoller, die Elemente selbst zu löschen? JS kann man deaktivieren, aber CSS auch. Und wenn die Ellemente nur bei JS nicht sichtbar sein sollen, wäre es zumindest logisch, sie auch wirklich rauszuschmeißen (das geht aber wirklich erst nachdem die Elemente existieren - und sei es, daß man sie nur nicht sieht, und dann im OnLoad-Event wirklich entfernt ...).
Das ist natürlich ein guter Tipp und wäre sauberer, danke.
Mein größtes Problem war, dass mir die vorgeschriebene bzw. verwendete »Abarbeitungsreihenfolge« für Browser sowie Details dazu, wann genau bestimmte Events ausgelöst werden, alles andere als klar war. Die Spec selbst ermutigt auch nicht unbedingt zum Durchlesen.
Jetzt bin ich um eine Erfahrung reicher: Externe Scripte werden wohl vor der Anzeige geladen und noscript lässt sich wunderbar und standardkonform ersetzen (was angesichts der Tatsache, dass es in XHTML5 nicht mehr erlaubt sein soll, nicht ganz unwichtig ist). Unterschiede HTML/XHTML sind mir klar, trotzdem danke für den Hinweis. Den Rest sollte ich dann doch allein schaffen. :)
Grüße und nochmal danke,
Mo