est-il possible de créer une zone de confirmation personnalisée pour l'événement OnBeForEunload dans un navigateur? J'ai essayé mais j'obtiens ensuite 2 boîtes de confirmation (une de moi qui n'est rien de plus que le retour de la confirmation ... puis de la standard du navigateur).
Pour le moment, mon code ressemble à: P>
var inputChanged = false; $(window).load(function() { window.onbeforeunload = navigateAway; $(':input').bind('change', function() { inputChanged = true; }); }); function navigateAway(){ if(inputChanged){ return 'Are you sure you want to navigate away?'; } }
3 Réponses :
Non, vous ne pouvez pas éviter le standard du navigateur. Tout ce que vous pouvez faire est d'injecter du texte personnalisé. Si vous utilisez le gestionnaire d'événements suivant (enregistré le prototype Lib Way): (et Êtes-vous sûr de vouloir naviguer loin de cette page? p>
FOO Bar Baz P>
Appuyez sur OK pour continuer ou annuler pour rester sur la page en cours. P>
[OK] [Annuler] P>
blockQuote> p> showmybeforeunloadconfirmation code> est vrai) Vous obtiendrez la confirmation standard du navigateur avec ce qui suit Texte: P>
window.onbeforeunload = function (e) { var message = "Your confirmation message goes here.", e = e || window.event; // For IE and Firefox if (e) { e.returnValue = message; } // For Safari return message; }; Please note: Most browsers put this message after some other text. You do not have complete control of the content of the confirmation dialog.
Il est en effet, malheureusement, impossible de remplacer cet écran.
J'ai fait face au même problème, j'ai pu obtenir sa propre boîte de dialogue avec mon message, mais les problèmes que j'ai rencontrés étaient les suivants:
Voici le code de solutions que j'ai trouvé, que j'ai écrit sur ma page maître. p>