web-dev-qa-db-fra.com

Utilisez JQuery ou onbeforeunload pour IE et FF

Je travaille dans une application Flex4, en utilisant javascript, dans le document "index.template.html". Je ne parviens pas à utiliser onbeforeunload avec Firefox. L'application fonctionne parfaitement dans IE, mais la même application ne convient pas à FF. (Voir ci-dessous)

<script type="text/javascript">
window.onbeforeunload=before;
window.onunload=after;

function before(evt)
{
   var flex=document.$(application)||window.$(application);
   flex.unloadMethod(); //custom method to log out the user
}

function after(evt)
{

}
</script>

D'après ce que j'ai trouvé, FF ne semble pas enregistrer les événements onbeforeunload. J'ai donc constaté que la chose la plus populaire à utiliser est la liaison avec JQuery. Donc, j'ai supprimé le code ci-dessus et l'ai remplacé par le code ci-dessous, mais il n'affiche pas de fenêtre contextuelle lorsque l'utilisateur tente de quitter la page à la fois dans IE et FF. Toute personne qui semble utiliser JQuery pour cela semble faire exactement la même chose, alors je ne sais pas ce qui se passe.

<script type="text/javascript">
$(window).bind("beforeunload",function(event){
   return "This should create a pop-up";
});
</script>

Finalement, il serait agréable d'appeler le "flex.unloadMethod" comme dans le premier morceau de code, mais pour le moment, j'essaie simplement de faire en sorte qu'une fenêtre contextuelle fonctionne, alors je sais que je suis sur la bonne voie. Toute idée serait grandement apprécié.

13
Brian

Essayer:

<script>
    $(window).on('beforeunload', function(){
        return "This should create a pop-up";
    });
</script>

Exemple: http://jsfiddle.net/AeztA/3/

30
Joe

Voudrais ajouter que j’ai compris que vous ne pouvez pas utiliser une chaîne vide dans firefox . Elle doit être au moins une vierge, par exemple, en tant que retour.

var text = 'Exit Message';

$(window).on('beforeunload', function(){
    return " " + text;
});
1
neokjo