Puis-je afficher une boîte de dialogue de confirmation lorsque l'utilisateur est la fermeture de la fenêtre de Safari/Chrome?
Dans IE et FF, je peux associer un gestionnaire d'événement pour onBeforeUnload, et en passant d'une chaîne à une propriété de l'événement, l'utilisateur verra un dialogue en lui demandant s'il veut continuer avec le "déchargement" (soit la fermeture de la fenêtre ou de naviguer à l'extérieur).
Safari et Chrome ne prennent pas en charge onBeforeUnload, onUnload semble être trop tard.
Est-il possible de reproduire les mêmes fonctionnalités dans Safari/Chrome?
NOTE: je ne cherche pas à l'utilisateur de se tenir en otage. Je sais que c'est lancinante et nations unies-la refroidir. En fait, mon site va de grands efforts pour permettre à l'utilisateur d'aller librement, et ont tout à sa place quand ils reviennent.
Cependant, je suis d'hébergement d'autres sites à l'intérieur des IFrames, et parfois ceux-ci décident de se débarrasser de moi et de prendre sur le navigateur, c'est ce que j'essaie d'éviter.
Merci!
- A noter qu'il est généralement considéré comme impoli de l'affichage des sites d'autres personnes dans vos propres images, et il y avait un tollé général quand Digg récemment fait juste cela.
- Je sais, et merci pour la suggestion. Cependant, nous sommes TRÈS différentes cibles que Digg, et (nous croyons au moins), nous avons une bonne raison pour ce faire, il fournit une fonctionnalité réelle.
Vous devez vous connecter pour publier un commentaire.
Cela fonctionne parfaitement pour moi dans Chrome et Safari:
Lorsque je tente de fermer la fenêtre, je l'invite.
onbeforeunload
gestionnaire a un tas de restrictions sur ce qu'il peut faire. Je ne suis pas exactement sûr de ce qu'ils sont, et ils sont susceptibles de varier entre les navigateurs. Vous devriez le tester, mais je serait douteux qu'il serait de travailler partout, maintenant et dans l'avenir.StackOverflow lui-même utilise
onbeforeunload
, et il fonctionne très bien pour moi dans Safari:Je l'ai vérifié dans google chrome, et il semble fonctionner correctement à l'aide de ceci:
onUnload seems to be too late
.Cette question est abordée dans un peu plus de détail dans un autre plus récent StackOverFlow question:
Réglage onbeforeunload sur l'élément de corps en Chrome et IE à l'aide de jQuery