2009-07-17 8 views
4

Existe-t-il un moyen d'intercepter l'événement de fermeture du navigateur à partir de JavaScript? Je ne veux pas faire cela dans l'événement Page Unload ou quoi que ce soit. Il doit être manipulé en cliquant sur le bouton de fermeture du navigateur.Handle Browser fermer en JavaScript?

Est-ce possible?

Répondre

12

Non. Vous avez seulement l'événement onbeforeunload, disponible en javascript brut (jquery n'inclut pas cet événement).

Si vous voulez l'essayer, essayez de poster ici une réponse et, sans appuyer sur "postez votre réponse" essayez de fermer la fenêtre du navigateur.

Ceci est le moyen le plus proche d'accéder à l'événement "Fermer la fenêtre".

+0

Est-ce que "Non" n'est pas une réponse un peu trompeuse? –

+0

Non :) parce que la solution ici est pour l'onglet du navigateur fermer pas pour le navigateur entier fermer. –

0

Pas vraiment. L'événement de déchargement de page est tout ce que vous avez. Et même pas toujours. Cela permettrait d'interférer avec les souhaits de l'utilisateur.

1

est ici bel article sur ce de 4guysfromrolla

<script language="JavaScript"> 
     window.onbeforeunload = confirmExit; 
     function confirmExit() 
     { 
      return message to display in dialog box; 
     } 
    </script> 
3

événement onbeforeunload capture chaque événement unload mais il y a une certaine façon de gérer trick si le navigateur de fermeture utilisateur en cliquant sur le bouton Fermer, voici un exemple de code

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
        "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
    <script src="http://code.jquery.com/jquery-latest.js"></script> 

    <script> 
    $(document).ready(function(){ 

    //handle if your mouse is over the document body, 
    //if not your mouse is outside the document and if you click close button return message or do what you want 

    var out = false; 
    $("body").mouseover(function(){ 
     out=false; 
    }).mouseout(function(){ 
     out=true; 
    }); 


    $(window).bind('beforeunload', function(e){ 
    if(out) 
     {return "Do you really want to leave this page now?"} 
    }); 

    }); 
    </script> 

</head> 
<body> 
    <p> 
    <a href="http://cssbased.com">go outside</a> 
    <br> 
    <a href="test.html">reload page</a> 
    <span> </span> 
    </p> 
</body> 
</html>