Problem mit OnLoad !!! Hilfe...
Jogi
- javascript
0 wahsaga0 at0 Uwe
Hallo Leute,
habe folgendes Problem:
Ich habe auf einer PHP-Seite ein Javascript eingebaut,
welches mit OnLoad im BODY-Tag inititalisiert wird.
Das Problem:
Im Javascript wir ein DIV-Tag mit der ID "menu" angesprochen.
Dieses DIV-Tag wird aber erst per "include" in die Seite
eingebunden.
D.h. Bei der OnLoad Initialisierung ist das DIV-Tag noch
gar nicht vorhanden und ich bekomme eine
Fehlermeldung (Object is NULL)...
Wie kann ich die Initialisierung des Scripte so "rauszögern",
bis das DIV-Tag auch da ist.
Ich hoffe Ihr wisst was ich meine.
Wäre für Tipps dankbar
Grüße
Jogi
hi,
Im Javascript wir ein DIV-Tag mit der ID "menu" angesprochen.
Dieses DIV-Tag wird aber erst per "include" in die Seite
eingebunden.
D.h. Bei der OnLoad Initialisierung ist das DIV-Tag noch
gar nicht vorhanden und ich bekomme eine
Fehlermeldung (Object is NULL)...
das ist eigentlich nicht möglich.
onLoad feuert erst, wenn der browser die seite komplett geladen (und gerendert AFAIK) hat - zu diesem zeitpunkt sind aber _alle_ PHP-funktionen längst abgeschlossen.
gruß,
wahsaga
Hallo wahsaga,
onLoad feuert erst, wenn der browser die seite komplett geladen (und gerendert AFAIK) hat - zu diesem zeitpunkt sind aber _alle_ PHP-funktionen längst abgeschlossen.
zumindest bei meinem firefox tritt das gleiche Problem auf. Ich denke, daß ist unabhängig von der Verwendung von PHP. Scheinbar wird onload ausgeführt, bevor die Seite komplett gerendert ist - zumindest bevor das entsprechende div Objekt über die DOM Schnittstelle ansprechbar ist. Bei mir hat als Workaround ein window.addEventListener("load", init, false); geholfen (init() ist die Funktion die nach dem laden aufgerufen werden soll).
Grüße,
Peter
zumindest bei meinem firefox tritt das gleiche Problem auf. Ich denke, daß ist unabhängig von der Verwendung von PHP. Scheinbar wird onload ausgeführt, bevor die Seite komplett gerendert ist
Seit wann das denn? Welche version und wie rufst du den Event auf?
Struppi.
Hallo Struppi.
zumindest bei meinem firefox tritt das gleiche Problem auf. Ich denke, daß ist unabhängig von der Verwendung von PHP. Scheinbar wird onload ausgeführt, bevor die Seite komplett gerendert ist
Seit wann das denn? Welche version und wie rufst du den Event auf?
Das Problem tritt mit meiner aktuellen Firefox Version nicht mehr auf. Leider weiß ich nicht genau welche Version Probleme gemacht hat (nach einem apt-get dist-upgrade geht es jetzt jedenfalls). Es müsste aber eine 0.9.3 Version gewesen sein ...
Ich habe die Funktion init() mittels <body onLoad="init();"> aufgerufen. In der JavaScript Console habe ich eine Fehler in der Art "Object has no properties" bekommen (die genaue Fehlermeldung weiß ich nicht mehr).
Grüße,
Peter
Das Problem tritt mit meiner aktuellen Firefox Version nicht mehr auf. Leider weiß ich nicht genau welche Version Probleme gemacht hat (nach einem apt-get dist-upgrade geht es jetzt jedenfalls). Es müsste aber eine 0.9.3 Version gewesen sein ...
Ich hab hier 0.9.3 und es geht ohne Probleme.
Ich habe die Funktion init() mittels <body onLoad="init();"> aufgerufen. In der JavaScript Console habe ich eine Fehler in der Art "Object has no properties" bekommen (die genaue Fehlermeldung weiß ich nicht mehr).
Dann war wohl ein anderer Fehler in der Seite.
Struppi.
Hallo.
Wie kann ich die Initialisierung des Scripte so "rauszögern",
bis das DIV-Tag auch da ist.
Baue die zeitliche Verzögerung doch in das Skript ein.
MfG, at
Hallo Leute,
Im Javascript wir ein DIV-Tag mit der ID "menu" angesprochen.
Dieses DIV-Tag wird aber erst per "include" in die Seite
eingebunden.
Ich nehme mal, der Teil mit dem DIV-Tag wird mittels PHP included. Das geschieht auf jeden Fall auf dem Server, der Javascript-Code wird aber erst später beim Client ausgeführt. Der führt den onload-Aufruf erst aus, nachdem die ganze Seite geladen ist.
Die Ursache Deines Problems muß also woanders liegen. Poste mal ein bischen Code...