CyberTux: Script funktioniert nicht mit innerHTML

Beitrag lesen

Hallo dicon,

vielen Dank für Deine Antwort.

Ich denke ich habe Deine Ausführungen soweit schon verstanden, weiß nur nicht wie ich das umsetzten soll. Sorry, ich bin Javascriptmäßig leider nicht besonders fit.

Eine mögliche Lösung könnte darin bestehen, dass du initNews erst ausführst,
wenn Ajax fertig ist.

Wie gehe ich denn da vor, woran merke ich das ajax fertig ist? Könnte das eventuell mit setTimeOut gelöst werden?

vielen Dank vorab,
viele Grüße, Rolf

Hallo Rolf,

Variante >scriptLäuft<

  • Seite wird geladen
  • Scriptblock wird mit dem Header geladen
  • this.onload=initNews wird ausgeführt und weißt den news-DIVs den
      entsprechenden Event zu
  • Mouseover-Effekt wie gewünscht

Variante >scriptLäuftNicht<

  • Seite wird geladen
  • ajax.js und switchnews.js werden geladen
  • <body onload="...> führt den httpRequest aus und läd den Inhalt der
      Mittelspalte nach
  • Ende
  • kein Mouseover-Effekt

Was fehlt? Die Eventzuweisung für die betreffenden Elemente. Du führst zwar am
Ende der switchnews.js wieder window.onload=initNews aus, es erfolgt aber
keine Zuweisung des Events. Die Elemente sind zu diesem Zeitpunkt im DOM noch
garnicht vorhanden.

Hast du schon mal im IE getestet? Der zeigt garnicht erst was an, sondern
kommt gleich mit der Fehlermeldung 'initNews.activeNews' ist Null oder
kein Objekt...

Eine mögliche Lösung könnte darin bestehen, dass du initNews erst ausführst,
wenn Ajax fertig ist.

Grüße, dicon