Rolf B: Frage zum Wiki-Artikel „Ereignisverarbeitung“

Beitrag lesen

problematische Seite

Hallo Andreas,

danke für den Hinweis. Das Wiki ist an dieser Stelle unscharf bis fehlerhaft. Zum einen vermisse ich da den Hinweis auf die cancelable Eigenschaft des Events - ein Event mit cancelable==false lässt sich durch preventDefault nicht abbrechen. Zum zweiten sind unload und beforeunload keine Events des Document-Objekts, sondern des Windows.

Das unload-Event ist nicht oder zumindest heutzutage nicht mehr cancelable und daher ungeeignet, das Verlassen einer Seite zu verhindern.

Wenn überhaupt, müsste man beforeunload nutzen, und stößt auf ein weiteres Problem: Firefox spielt mit, aber Chrome sagt im Log rot und deutlich:

Blocked confirm('...') during beforeunload.

Eine solche Abfrage zu bauen ist daher fahrlässig. Es ist auch kein Progressive Enhancement, das zu tun, weil die Browser dem eine Progressive Restriction entgegensetzen. Chrome hat das in früheren Versionen vermutlich nicht blockiert (keine Ahnung, habe kein Altchrom hier rumstehen) und ob der Firefox das noch lange zulässt, weiß man auch nicht. Denn eine solche Abfrage kann den User zwingen, auf der Seite zu bleiben, was einfach nur ungehörig ist. Der aktuelle Nachfolger von beforeunload-Confirms besteht deshalb in diesen "Hey warte mal" Popups, wenn man die Maus in Richtung Adresszeile bewegt.

Ich habe den Wiki-Abschnitt überarbeitet.

Rolf

--
sumpsi - posui - obstruxi