onunload, onbeforeunloading - Wo ist der Unterschied?
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
befehlen
browser
durchlesen
entwerfen
ersten teil
fenster
frage
funktion
gegenzug
gleichen code
hersteller
identifizieren
internet
jemand
kurzer sinn
lange rede
schauen
stellen
trick
weiche bauen
-
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?
...und ich stelle gerade fest, dass etwas wie window.onunload = "xyz()"; nicht funktioniert während <body onunload="xyz()"> bestens funktioniert!!! Was geht ab?! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Also den ersten Teil kann ich dir beantworten: Es gibt eine ganze Reihe von Javascript Funktionen und Elementen die von den Herstellern der Browser eingeführt worden sind, diese sind populär geworden und von anderen Herstellern übernommen. Allerdings kann die Funktion schon beim nächsten Update des Browserherstellers nicht mehr vorhanden sein.
-
Weißt du, wie ich 'ne Browser-Weiche basteln kann?
(!ohne, dass das Event zwei mal getriggt wird!) -
Wie eine Browserweiche gebastelt wird, weiß ich zwar nicht, aber ich habe gestern bei eigenen Versuchen herausgefunden, dass Chrome mit Befehlen in "onunload" nichts anfangen will/kann. Glücklicherweise interpretiert aber Firefox im Gegenzug nur "onunload", sodass Browserweichen eigentlich entfallen müssten.
Du schreibst einfach in beide Events den gleichen Code und gut ist... -
Um eine rein Javascript basierte Browserweiche zu entwerfen, muss man sich nur mit den einzelnen Browsern auseinandersetzen. Der Trick ist lediglich, den Browser eine Frage zu stellen und zu schauen, wie er darauf antwortet. Reagiert er garnicht oder nicht so wie erwartet, hat man etwas, an dem man sich orientieren kann.
Lange Rede, kurzer Sinn: Entweder liest du den Useragent aus (der wiederum manipuliert werden kann) oder du prüfst einfach, ob der Browser die Funktion X (fiktiv) ausführen kann, oder nicht. Bei Ajax-Requests beispielsweise prüft man, ob der Browser window.XMLHttpRequest versteht. Falls ja, handelt es sich um einen Webkit Browser (oder Firefox ^^). Falls der Browser das nicht kann, prüft man auf window.ActiveXObject, was den IE identifizieren würde.
Das geht auch mit anderen Funktionen. Man muss sich nur ein wenig durchlesen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage