• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

onunload, onbeforeunloading - Wo ist der Unterschied?

rednaZ

Neues Mitglied
Ich bin gerade ziemlich verwirrt, und werde immer verwirrter, je mehr ich im Internet recherchiere... Das Event unbeforeunload scheint irgendwie seltener zu sein, aber bei meinem Firefox (Mac-Version) funktioniert es besser, da es auch getriggt wird, wenn ich das Fenster einfach schließe... Andererseits wird das Event unbeforeunload nirgendwo offiziell gelistet, weder auf w3schools.com noch auf SELFHTML. Ist es vielleicht veraltet? Aber warm funktioniert's dann besser?! Weiß jemand, was da los ist? Wie kann ich 'ne Weiche bauen?

Update: Und ich stelle gerade fest, dass etwas wie window.onunload = "xyz()"; nicht funktioniert während < body onunload="xyz()" > bestens funktioniert!!! Was geht ab?!

Ja lol, Hauptsache, man muss < br > eingeben um 'nen Zeilenumbruch zu speichern... omg
 
Zuletzt bearbeitet:
onunload und window.onunload sind so ziehmlich das selbe....
die Sache ist das deine Homepage aus DOM Elementen besteht und window ist das Elternelement von document und so weiter....

window.document.....

Es kommt drauf an wie du es verwenden willst, wenn du es an einem body Tag anhängen willst, dann < body onunload="xyz()" >,
der Body Tag ist aber nichts anderes als window.document.body was heißt das du zwar nur <body> schreibst, aber dahinter steckt das objekt document und dahinter das Objekt window.

Warum window.onunload nicht funktioniert? Erklärt sich ja jetzt von selbst:
Da window die Funktion onunload vielleicht nicht kennt.... wenn würde es so aussehen: window.document.body.onunload aber die einfachere Schreibweise wäre
< body onunload="xyz()" >.
 
Nö...

Ich wollte eigentlich wissen, was der Unterschied zwischen "onunload" und "onbeforeunload" ist und nicht zwischen "onunload" und "window.onunload" (und wenn, dann wär' mir mit einem "so ziehmlich das selbe" nicht viel weiter geholfen). Außerdem entsprechen die Attribute des HTML-Objekts "body" nicht den Eigenschaften, Methoden und Events des Javascript-Objekts "body", das Event "onunload" wird per HTML als Attribut angeheftet an den body-Tag, über Javascript aber als Event an das Objekt "window" (onunload Event). Deshalb kann "window.document.body.onunload = "...";" nicht funktionieren, was man gemerkt hätte, hätte mann's ausprobiert... Funktioniert bei dir denn "window.onunload = "...";"?! Ich kann mir gut vorstellen, das das browser-/plattform-abhängig ist. Ich hab' irgendwie gerade das Gefühl, Javascript ist der letzte Müll...
 
JS ist eigentlich ganz gut...


Aso der unterschied zwischen "onunload" und "onbeforeunload".
Es sind 2 verschiedene Funktionen, die nicht die selbe Funktion haben.
Einfach gesagt onbeforeunload greift zuerst, und dann erst onunload.


Im Prinziep setzt man onbeforeunload so ein:

window.onbeforeunload = function()
{
return "Sind Sie sich sicher das Sie die Seite velassen wollen?";
}
 
Und wie setzt man dann onunload ein? Das ist nicht so ganz schlüssig, ich glaube du weißt es nicht... Ich glaube eher, dass verschiedene Browser verschiedene Audrücke einführten, die dann kopiert wurden... Irgendwo hab' ich auch gelesen, onbeforeunloading wäre zuerst im IE eingeführt worden... Was mich jetzt wirklich interessiert ist, wie ich eine Browser-Weiche bauen kann! (ohne das das Event zwei mal getriggt wird)
 
Nein, onunload und onbeforeunload sind wie der Name schon sagt 2 unterschiedliche Sachen.

onbeforeunload wird in dem Moment ausgeführt in dem ein Nutzer eine aufgerufene Seite verlassen möchte, er also "den Willen zeigt zu gehen". Wenn man z.B. in einem Forum einen Beitrag schreibt und während des Schreibens irgendeinen Link auf der Seite anklickt, könnte onbeforeunload eine Warnmeldung ausgeben "Sind Sie sicher, dass Sie die Seite verlassen möchten?".

onunload tritt erst dann in Aktion wenn der Nutzer die Seite bereits verlässt - man merke: Unterschied "verlassen wollen" und "verlässt". Dieser Eventhandler wird meist dann verwendet wenn z.B. während des Besuchers aufgebaute Verbindungen vor verlassen der Seite beendet werden sollen. Die Google Maps API nutzt das zum Beispiel.
 
lol, habe ich das oben nicht schon geschrieben? Musste schon lesen rednaZ. Mehr als dir das erklären kann ich auch nicht.
Vielleicht glaubst du ja threadi wenn du mir nicht glaubst.

Oder wie wäre es mit ausprobieren, ob das erstmal stimmt.
Wenn du an deiner Theorie festhalten willst, warum postest du hier, und stellst fragen?
 
Zurück
Oben