2010-03-16 9 views
3

Je souhaite avoir une case de confirmation lorsque l'utilisateur essaie de fermer la fenêtre.Confirmer la boîte avant de fermer un onglet

window.onbeforeunload = function (evt) { 
var message = 'Are you sure you want to leave, cause there are some unsaved changes?'; 
if (typeof evt == 'undefined') { 
evt = window.event; 

} 
if (evt) { 
evt.returnValue = message; 
} 

     return message; 

} 

La chose est que je veux vérifier une variable valeur à

var sncro=1; 

Si sa valeur est égale à alors cette boîte de confirmation doit être there..else pas nécessaire d'avoir une confirmation. Je ne suis pas en mesure de comprendre cela .. C'est tellement stupide mais je demande à tout le monde peut jeter un oeil sur le code.

+0

Rapporté par pour « naviguer loin » au lieu de fermer: http://stackoverflow.com/questions/925734/whats-this-in-javascript-onclick deux résolus avec 'onbeforeunload' . –

Répondre

1

Je suppose qu'au chargement de la page, vous installez var sncro = 1; et quand certaines données changent, vous ajustez cette valeur. Voici la vérification rapide:

window.onbeforeunload = function (evt) { 
    if (sncro != 1) { 
    var message = 'Are you sure you want to leave, cause there are some unsaved changes?'; 
    if (typeof evt == 'undefined') { 
     evt = window.event; 
    } 
    if (evt) { 
     evt.returnValue = message; 
    } 
    return message; 
    } 
} 
+0

@Sohnee: J'envisagerais d'utiliser '! =='. Ce que vous avez devrait fonctionner, mais le concept de vérité et la conversion de type implicite en js peuvent être assez confus. –

+0

@Mads Ravn - Je suis d'accord avec! == surtout en comparaison avec 0 - mais je ne vais jamais trop loin sur le territoire "JSLint" quand on parle du code d'autres personnes comme on ne sait jamais où ils décident de faire blah = "1"; if (blah! == 1) ... – Fenton

+0

@Fenton - Puis-je écrire mon propre code javascript au lieu de cette boîte de confirmation. –

Questions connexes