Script funktioniert nicht mit innerHTML
CyberTux
- javascript
Hallo,
ich habe eine Seite bei welcher die Content-Seiten über ein Script mit document.getElementById(pageElement).innerHTML geladen wird.
Auf einer Seite die nachgeladen wird habe ich ein Script eingebaut (das Script stammt aus diesem Thread hier
http://forum.de.selfhtml.org/archiv/2006/10/t138977/ )
Das Script funktioniert wunderbar wenn die Seite normal aufgerufen wird, wird die Seite jedoch über innerHTML eingebunden funktioniert das Script nicht mehr.
Kann mir jemand sagen warum das so ist?
Hier wird die Seite eingebunden, Script läuft nicht: http://www.insektenfang.de/prototyp/
Hier wird die Seite alleinstehend aufgerufen, Script läuft:
http://www.insektenfang.de/prototyp/ueberuns.html
Es dreht sich um die mittlere Spalte.
viele Grüße, Rolf
Hallo Rolf,
Variante >scriptLäuft<
Variante >scriptLäuftNicht<
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
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
'n Abend,
muss eben zum Grillen... wenn es sonst keine hilfreichen Postings gibt, meld ich
mich später nochmal.
Grüße, dicon
Hat sich erledigt, bin auf ein andere AJAX-Bibliothek umgestiegen.
Grüße, Rolf
'n Abend,
muss eben zum Grillen... wenn es sonst keine hilfreichen Postings gibt, meld ich
mich später nochmal.Grüße, dicon
Hallo Rolf,
...bin auf ein andere AJAX-Bibliothek umgestiegen.
Yep, hab ich gestern schon gesehen... SpryTabbedPanels - da hast dir ja was
vorgenommen ;o)) Hab deswegen auch keinen Kommentar mehr abgegeben.
Grüße & viel Spaß damit, dicon