Body unLoad - nicht immer?
Arthur Khessin
- html
0 Daniel Thoma0 Arthur
0 Utz Grimminger
Guten Tag,
ich habe folgendes Problem:
wie bekannt ist es ja erlaubt einen zweiten BODY Tag mit weiteren Elementen zu haben. Doch es klappt irgendwie nicht immer.
In die Mitte meiner Homepage baue ich folgenden Code ein:
<body onUnload="if(top.location.href.indexOf('www.adexit.de/exit.php3')==-1){window.open('http://www.adexit.de/exit.php3?ID=71')};">
Dieser besagt, dass es beim Verlassen ein neues Fenster öffnen soll, und außerdem soll überprüft werden, dass sich dieser Script in dem geöffnetem Fenster nicht nochmal gestartet wird.
Doch immer wieder gibt es ein Problem damit. Auf Seiten wo Frames verwendet werden - wird der Code manchmal einfach ignoriert! Bei anderen Seiten wird er ausgeführt - doch nicht immer.
Kann mir jemand sagen was an dem Code falsch ist bzw. wann dieser funktioniert und vieleicht - nur mit welcher Browser Version?
Danke im Voraus,
Arthur Khessin.
Hallo Arthur
Ich bin mir zwar nicht sicher, ob es daran liegt, da ich das problem nicht reproduzieren konnte, aber
es wäre eine plausible erklährung.
Wenn die Seite verlassen wird, wird der browser von dem code dazu gezwungen eine seite zu laden obwohl
der user eine andere eingegeben hat. daher geht es manchmal schief. außerdem nerft es den user
da er die seite nicht verlassen kann.
Öffne die seite besser in einem neuen fenster.
Außerdem kann bei dieser lösung die seite keine links enthalten. wenn man auf ein link clickt wird
onunload auch ausgeführt
Tschüs
Daniel
Wie meinst du das in einem neuem Fenster?
Gibt es denn überhaupt irgendein anderes Befehle das das gleiche macht?
Hallo Arthur
Ich bin mir zwar nicht sicher, ob es daran liegt, da ich das problem nicht reproduzieren konnte, aber
es wäre eine plausible erklährung.
Wenn die Seite verlassen wird, wird der browser von dem code dazu gezwungen eine seite zu laden obwohl
der user eine andere eingegeben hat. daher geht es manchmal schief. außerdem nerft es den user
da er die seite nicht verlassen kann.
Öffne die seite besser in einem neuen fenster.
Außerdem kann bei dieser lösung die seite keine links enthalten. wenn man auf ein link clickt wird
onunload auch ausgeführtTschüs
Daniel
Hallo Arthur
Wie meinst du das in einem neuem Fenster?
Statt mit top.location.href = "" zur entsprchenden Seite weiterzuleiten, kannst du mit
window.open("url/to.html","winname","parameter") ein neues Browserfenster öffnen.
Und das probelem mit den Links solltest du dir schon mal durch den Kopf gehen lassen.
Wenn du onUnload ein neues Fenster öffneset, wird das auch gemacht, wenn man auf einen Link clickt.
Mit deiner if-abfrage vermeidest du zwar rekursion, aber du solltest vieleicht auch abfragen ob die seite
auf deinem Server leigt und nur wenn sie das nicht tut ein neues Fenster öffnen.
Tschüs
Daniel
Hi Arthur,
wie bekannt ist es ja erlaubt einen zweiten BODY Tag mit weiteren Elementen zu haben. Doch es klappt irgendwie nicht immer.
Das höre ich zum ersten Mal. Es ist zwar erlaubt, das <BODY>-Tag weg zu lassen, aber es zwei Mal zu verwenden? Das widerspricht dem Grundgedanken. Und ich nehme an, daher kommt Dein Problem - woher soll der Browser wissen, welcher body-Tag jetzt gilt? Er muss raten. Und das ist, was Du beobachtest.
Mir fällt auch kein Grund ein, warum der zweite Boyd-Tag nötig sein sollte - Du kannst den Event-Handler doch auch in den ersten einbauen.
Grüße,
Utz