beforeunload

L'événement beforeunload est déclenché quand la fênetre, le document et ses resources sont sur le point d'être déchargés.

Lorsque une chaîne de charactères est assignée à la propriété returnValue d'Event, une boîte de dialogue apparaît demandant confirmation pour quitter la page (Voir exemple plus bas). Si aucune valeur n'est fournie, l'événement est traité silencieusement.

Propagation Non
Annulable Oui
Object cible defaultView
Interface Event

Propriétés

Propriété Type Description
target Lecture seule EventTarget La cible de l'événement (la plus haute cible dans l'arbre du DOM).
type Lecture seule DOMString Le type de l'événement.
bubbles Lecture seule Boolean Est-ce que l'événement se propage?
cancelable Lecture seule Boolean Est-il possible d'annuler l'événement?
returnValue DOMString La valeur courante du return de l'événement (Le message affiché à l'utlisateur)

Exemples

window.addEventListener("beforeunload", function (event) {
  event.returnValue = "\o/";
});

// est équivalent à
window.addEventListener("beforeunload", function (event) {
  event.preventDefault();
});

Les navigateurs basés sur WebKit ne suivent pas les spécifications pour la boîte de dialogue. Un exemple pratiquement compatible entre les navigateurs serait à peu près comme suit:

window.addEventListener("beforeunload", function (e) {
  var confirmationMessage = "\o/";

  e.returnValue = confirmationMessage;     // Gecko, Trident, Chrome 34+
  return confirmationMessage;              // Gecko, WebKit, Chrome <34
});

Notes

Quand l'événement retourne une valeur non nulle, l'utilisateur est invité à confirmer le déchargement de la page. Dans la plupart des navigateurs, la valeur de retour de l'événement est affiché dans une boîte de dialogue. Dans Firefox 4 et plus, la chaine de caractères retournée n'est pas affiché à l'utilisateur. A la place, Firefox affiche "Cette page demande de confirmer sa fermeture ; des données saisies pourraient ne pas être enregistrées". Voir bug 588292.

Depuis le 25 Mai 2011, la spécification HTML5 indique ques les appels aux méthodes window.alert(), window.confirm() et window.prompt() peuvent être ignorés durant l'événement. Voir specification HTML5 pour plus de détails.

Noter aussi que de nombreux navigateurs mobles ignorent le résultat  de l'événement (Il n'y a donc aucune demande de confirmation). Firefox a une préférence cachée dans about:config pour faire de même. Essentiellement, cela signifie que l'utilisateur confirme toujours silencieusementque le document peut être déchargé.

Spécifications

Spécification Statut Commentaire
WHATWG HTML Living Standard
La définition de 'beforeunload' dans cette spécification.
Standard évolutif  
HTML5
La définition de 'beforeunload' dans cette spécification.
Recommendation Première définition

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : Kalwyn
 Dernière mise à jour par : Kalwyn,