web-dev-qa-db-fra.com

Alertes lorsque vous quittez une page Web

Lorsque j'essaie de fermer l'onglet Google Documents avec des modifications non enregistrées, voici ce que j'obtiens dans mon navigateur (FF 3.5).

Voulez-vous vraiment quitter cette page?

Vous avez des modifications non enregistrées dans ce document. Cliquez sur Annuler maintenant, puis sur "Enregistrer" pour les enregistrer. Cliquez sur OK maintenant pour les supprimer.

Appuyez sur OK pour continuer ou sur Annuler pour rester sur la page actuelle.

Ma question est de savoir si ces alertes font partie de l'application Web (par exemple, gdocs) ou sont-elles diffusées par le navigateur? Dans ce dernier cas, comment cela se fait-il?

53
Vijay Dev

Par le navigateur. C'est le gestionnaire d'événements beforeunload qui renvoie le texte personnalisé de la boîte de dialogue, qui n'est que le milieu des trois paragraphes - les deux autres paragraphes ainsi que le texte des boutons ne peuvent pas être personnalisés ou modifiés.

window.onbeforeunload = function(){ return 'Testing...' }

// OR

var unloadListener = function(){ return 'Testing...' };
window.addEventListener('beforeunload', unloadListener);

Donnera un dialogue qui dit

Are you sure you want to navigate away from this page?

Testing...

Press OK to continue, or Cancel to stay on the current page.

Vous pouvez annuler cela en définissant le gestionnaire sur null

window.onbeforeunload = null;

// OR

window.removeEventListener('beforeunload', unloadListener);
85
Peter Bailey