Puis-je ouvrir une boîte de dialogue de confirmation lorsque l'utilisateur ferme la fenêtre dans Safari / Chrome?

StackOverflow https://stackoverflow.com/questions/803887

Question

Dans IE et FF, je peux attacher un gestionnaire d’événements à onBeforeUnload, et en transmettant une chaîne à une propriété de l’événement, l’utilisateur verra une boîte de dialogue lui demandant s’il souhaite continuer avec le "déchargement". (soit en fermant la fenêtre, soit en s’éloignant).

Safari et Chrome ne prennent pas en charge onBeforeUnload, et onUnload semble être trop tard. Existe-t-il un moyen de répliquer les mêmes fonctionnalités dans Safari / Chrome?

REMARQUE: je n'essaie pas de garder l'utilisateur en otage. Je sais que c'est harcelant et pas cool. En fait, mon site met tout en œuvre pour permettre à l'utilisateur de partir librement et de tout avoir à sa place à son retour. Toutefois, j’héberge d’autres sites au sein d’IFrames et ceux-ci décident parfois de se débarrasser de moi et de reprendre le navigateur, ce que j’essaie d’éviter.

Merci!

Était-ce utile?

La solution

Cela fonctionne parfaitement pour moi dans Chrome et Safari:

<html><body><p>Test</p>
<script>window.onbeforeunload = function() { return "Sure?"; }</script>
</body></html>

Lorsque j'essaie de fermer la fenêtre, l'invite s'affiche.

Autres conseils

StackOverflow lui-même utilise onbeforeunload et cela fonctionne très bien pour moi dans Safari:

function setConfirmUnload(a){window.onbeforeunload=a?function(){return a}:null}

Je l'ai vérifié en chrome et il semble fonctionner correctement avec ceci:

<body onunload="alert('x');" onbeforeunload="test1();">

Cette question est traitée de manière légèrement plus détaillée dans une autre question plus récente de StackOverFlow: jQuery

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top