Malgré ce que disent certains de ces dialogues, ils ne peuvent rien faire de malveillant . Vous pouvez toujours cliquer sur OK ou Quitter la page pour fermer la page incriminée sans aucune conséquence.
Si la boîte de dialogue est trop longue et que les boutons sont hors de l'écran , vous pouvez appuyer surEnter pour confirmer la fermeture de la page.
Si vous n'avez pas de clavier (appareils à écran tactile), utilisez le bookmarklet ci-dessous ou consultez la réponse de SimpleSimon (Chrome uniquement).
Maintenant, quelques détails.
Il n'y a qu'une seule façon d'effectuer une action lors de la fermeture d'une page: à travers l' onbeforeunload
événement. Bien sûr, cela pourrait être facilement utilisé contre l'utilisateur (par exemple quand il essaie de fermer une page, il ouvre sa copie dans une nouvelle fenêtre), donc c'est très limité.
En fait, la seule chose raisonnable que vous pouvez faire est d'ouvrir une boîte de dialogue avec du texte personnalisé et deux boutons, un pour quitter la page et un pour rester. La seule chose qu'une page peut faire avec cette boîte de dialogue est de définir son texte. Les boutons et la barre de titre sont immuables. Voici une capture d'écran de Firefox 3.6: ( très ancienne version de Firefox)
Bien sûr, lorsque vous laissez les gens afficher des popups avec n'importe quel texte et juste OK / Annuler boutons , vous pouvez être sûr que tôt ou tard certains gars l'utiliseront contre vous.
Dans la capture d'écran ci-dessus, OK signifie simplement "Quitter cette page", mais la description personnalisée suggère quelque chose de plus. Les navigateurs ont donc modifié les boîtes de dialogue, il est donc plus difficile de les rendre trompeuses. Par exemple, les versions récentes de Firefox semblent ignorer le texte personnalisé:
Chrome affiche le texte personnalisé, mais ajoute toujours une question demandant à l'utilisateur ce qu'il veut faire et les boutons indiquent explicitement leurs actions: (mais il est toujours sujet aux messages "vidéos de chat"!)
Voici Internet Explorer 10, également «sujet aux chats»:
Opera 12 ignore simplement l' onbeforeunload
événement et si vous essayez de fermer un onglet comme celui-ci, il se fermera comme les autres. Cependant, je n'ai pas testé le dernier opéra.
Donc, pour résumer les choses les plus importantes:
- Les pages ne peuvent afficher aucune boîte de dialogue avec du texte. Le site Web peut demander au navigateur d'afficher une boîte de dialogue avec un texte personnalisé, mais le navigateur peut l'ignorer complètement (Opera), utiliser du texte générique (Firefox) ou dire explicitement ce qui se passera (Chrome, IE).
- Les détails de la boîte de dialogue dépendent du navigateur que vous utilisez, mais les boutons sont toujours immuables. S'ils ne disent pas explicitement lequel fait quoi, alors OK signifie "quitter cette page * et Annuler est" rester ici ".
- Les sites Web ne peuvent effectuer aucune action malveillante si vous décidez de les quitter. Vos fichiers ne seront pas remplacés par des vidéos de chats, vous ne serez pas inondé de virus 135234 et le FBI ne sera pas informé que vous avez un logiciel illégal sur votre ordinateur.
Vous pouvez désactiver l' onbeforeunload
événement si vous le souhaitez, empêchant efficacement les pages de vous demander de quitter ou de rester. Voici un script utilisateur multi-navigateur . (faites défiler vers le bas si le lien est mort)
Si vous êtes sur un site Web spécifique qui affiche une fenêtre contextuelle malveillante et que vous avez toujours peur de cliquer sur Quitter , vous pouvez créer un bookmarklet pour le supprimer. Faites un clic droit sur votre barre de signets, choisissez Nouveau signet (ou équivalent) et collez-le comme URL: (c'est juste du code minifed du lien ci-dessus)
javascript:var x=document.createElement('script');x.type='text/javascript';x.innerHTML='onbeforeunload=function(){};';document.body.appendChild(x);
Cliquez ensuite sur ce signet et la fenêtre contextuelle sera temporairement supprimée de la page active.
Si vous souhaitez tester l'apparence de ces fenêtres contextuelles dans votre navigateur ou tester le bookmarklet / userscript, créez un fichier texte avec le code suivant et enregistrez-le en tant que .html
fichier:
<html><body onbeforeunload="return 'My custom text.'">_</body></html>
Il semble que le lien userscript soit mort en ce moment, alors voici une copie extraite du cache archive.org . Tous les crédits pour le créateur du script original.
// ==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);