Oui, je me rends compte que c'est horrible UI et mauvaise accessibilité sage, mais je suis obligé de chercher les options en raison de travaux sous contrat (à laquelle je ne suis pas d'accord et je suis coincé avec).Afficher une boîte de dialogue personnalisée lorsque l'utilisateur quitte le navigateur?
Je sais que vous pouvez attribuer un gestionnaire d'événements à onbeforeunload
comme:
window.onbeforeunload = function() {
return 'You have unsaved changes!';
}
Cela entraînerait une boîte de dialogue générée par le système d'exploitation/navigateur qui ne peut pas être personnalisé. Il vous demandera d'annuler votre demande ou continuer.
Jusqu'à présent, il semble que la seule façon dont je peux afficher tout-ness personnalisé est en insérant un window.open
dans ce gestionnaire d'événements:
window.onbeforeunload = function() {
var x = window.open('modal.html');
}
Ce serait fort probablement bloqué par un navigateur moderne comme un « pop-up » . Je dois afficher une toute nouvelle page avec mon dialogue, mais cela semble être le seul moyen de répondre à la demande.
Est-ce à peu près la seule option que j'ai? Autre que de dire avec force au client, il n'est pas recommandé de le faire?
La seule autre option serait que l'utilisateur appuie sur "Annuler la demande", puis insère la boîte de dialogue.
questions que je déjà regardé:
- jQuery UI Dialog OnBeforeUnload
- How can I override the OnBeforeUnload dialog and replace it with my own?
comment resterait-il ouvert cependant? c'est juste un élément embed/object? –