2016-02-24 4 views
0

Je souhaite m'assurer que l'utilisateur reçoive un avertissement lors de la fermeture de la fenêtre à certaines occasions (données non sauvegardées, par exemple). Fonctionne bien. MAIS: Je dois aussi faire un peu de nettoyage AVANT que la fenêtre ne se ferme mais APRÈS j'ai demandé si l'utilisateur veut vraiment la fermer. J'ai donc deux fonctions de rappel, une pour onbeforeunload qui lance la boîte de dialogue de confirmation, et une pour onunload qui devrait faire le nettoyage.onunload ne fonctionne pas en combinaison avec onbeforeunload dans Safari

Malheureusement, dans Safari, le rappel onunload ne semble pas être appelé.

Pourquoi?

$(window).on('beforeunload',function() { 
    if (connected) 
     return "Are you sure you want to close the window!"; 
}); 

$(window).on('unload',function() { 
    localStorage.removeItem("someItem"); // never executed in Safari 
}); 

Répondre

0

Malheureusement, cet événement n'est pas pris en charge dans certains navigateurs. Vous pouvez essayer d'utiliser l'événement pagehide au lieu de onunload.

Bonne chance!