Trotz der Aussage einiger dieser Dialoge können sie nichts Bösartiges tun . Sie können jederzeit auf OK oder Seite verlassen klicken , um die betreffende Seite ohne Konsequenzen zu schließen.
Wenn das Dialogfeld zu lang ist und die Schaltflächen nicht auf dem Bildschirm angezeigt werden , können Sie drückenEnter , um das Schließen der Seite zu bestätigen.
Wenn Sie keine Tastatur (Touchscreen-Geräte) haben, verwenden Sie das folgende Lesezeichen oder lesen Sie die Antwort von SimpleSimon (nur Chrome).
Nun einige Details.
Es gibt nur eine Möglichkeit, eine Aktion auszuführen, wenn eine Seite geschlossen wird: Durch das onbeforeunloadEreignis. Natürlich kann dies leicht gegen den Benutzer verwendet werden (zum Beispiel, wenn er versucht, eine Seite zu schließen, öffnet es die Kopie in einem neuen Fenster), so dass es sehr begrenzt ist.
Eigentlich ist das einzig Vernünftige, was Sie tun können, ein Dialogfeld mit benutzerdefiniertem Text und zwei Schaltflächen zu öffnen, eine zum Verlassen der Seite und eine zum Bleiben. Eine Seite kann mit diesem Dialogfeld nur den Text definieren. Schaltflächen und Titelleiste sind unveränderlich. Hier ist ein Screenshot von Firefox 3.6: ( sehr alte Version von Firefox)

Natürlich können Sie sicher sein, dass einige Leute es früher oder später gegen Sie verwenden, wenn Sie Popups mit beliebigem Text und nur OK / Abbrechen- Schaltflächen anzeigen lassen.

Im obigen Screenshot bedeutet OK nur "Diese Seite verlassen", aber die benutzerdefinierte Beschreibung schlägt etwas mehr vor. Daher haben Browser die Dialoge geändert, sodass es schwieriger ist, sie irreführend zu machen. Beispielsweise scheinen neuere Versionen von Firefox den benutzerdefinierten Text zu ignorieren:

Chrome zeigt den benutzerdefinierten Text an, fügt jedoch immer eine Frage an, in der der Benutzer gefragt wird, was er tun möchte, und die Schaltflächen geben explizit ihre Aktionen an:

Hier ist Internet Explorer 10, auch "katzenanfällig":

Opera 12 ignoriert das onbeforeunloadEreignis einfach und wenn Sie versuchen, einen Tab wie diesen zu schließen, wird er wie jeder andere geschlossen. Ich habe die neueste Version von Opera noch nicht getestet.
Also, um die wichtigsten Dinge zusammenzufassen:
- Seiten können keine Dialoge mit Text anzeigen. Die Website kann den Browser auffordern, einen Dialog mit einem benutzerdefinierten Text anzuzeigen, aber der Browser kann ihn insgesamt ignorieren (Opera), allgemeinen Text verwenden (Firefox) oder explizit angeben, was passieren wird (Chrome, IE).
- Die Details des Dialogfelds hängen vom verwendeten Browser ab, aber die Schaltflächen sind immer unveränderlich. Wenn sie nicht explizit sagen, wer was tut, bedeutet OK "diese Seite verlassen * und Abbrechen " hier bleiben ".
- Websites können keine böswilligen Aktionen ausführen, wenn Sie sie verlassen. Ihre Dateien werden nicht durch Katzenvideos ersetzt, Sie werden nicht mit 135234-Viren überflutet und das FBI wird nicht darüber informiert, dass Sie illegale Software auf Ihrem Computer haben.
Sie können das onbeforeunloadEreignis deaktivieren , wenn Sie möchten, und so effektiv verhindern, dass Seiten Sie zum Verlassen oder Bleiben auffordern. Hier ist ein browserübergreifendes Userscript . (Bildlauf nach unten, wenn der Link tot ist)
Wenn Sie sich auf einer bestimmten Website befinden, auf der ein schädliches Popup angezeigt wird, und Sie immer noch nicht auf Verlassen klicken können , können Sie ein Lesezeichen erstellen, um es zu entfernen. Klicken Sie mit der rechten Maustaste auf die Lesezeichenleiste, wählen Sie " Neues Lesezeichen" (oder eine entsprechende Option) und fügen Sie diese als URL ein:
javascript:var x=document.createElement('script');x.type='text/javascript';x.innerHTML='onbeforeunload=function(){};';document.body.appendChild(x);
Klicken Sie dann einfach auf dieses Lesezeichen und das Popup wird vorübergehend von der aktiven Seite entfernt.
Wenn Sie testen möchten, wie diese Popups in Ihrem Browser aussehen, oder das Bookmarklet / Userscript testen möchten, erstellen Sie eine Textdatei mit dem folgenden Code und speichern Sie sie als .htmlDatei:
<html><body onbeforeunload="return 'My custom text.'">_</body></html>
Es sieht so aus, als ob der Userscript-Link im Moment tot ist. Hier ist eine Kopie aus dem Cache von archive.org . Alle Kredite für den ursprünglichen Skriptschöpfer.
// ==UserScript==
// @name Disable - remove onbeforeunload
// @namespace
// @description Disable - remove the annoying onbeforeunload event
// @include *
// @author netvisiteurs.com
// ==/UserScript==
var x = document.createElement('script');
x.type = 'text/javascript';
x.innerHTML = 'onbeforeunload = function() {};';
document.body.appendChild(x);