2009-07-17 8 views
4

JavaScriptからブラウザの終了イベントをトラップする方法はありますか?私はページアンロードイベントや何かでこれをしたくありません。ブラウザの閉じるボタンをクリックして処理する必要があります。ハンドルブラウザはJavaScriptで閉じる?

可能ですか?

答えて

12

いいえ、あなたはonbeforeunloadイベントのみがraw javascriptとして利用可能です(jqueryにはこのイベントが含まれていません)。

試してみるには、ここに回答を投稿してください。「回答を投稿する」を押すことなく、ブラウザウィンドウを閉じます。

これは「ウィンドウを閉じる」イベントに最も近い方法です。

+0

「いいえ」と少し間違った答えがありますか? –

+0

いいえ:)ここでの解決策は、ブラウザータブを閉じてブラウザ全体を閉じるのではないためです。 –

0

ページアンロードイベントはすべてあなたが持っています。それは必ずしもそうではありません。これは、ユーザーの希望を妨害する能力を提供します。ここで

1

このことについて素晴らしい記事です4guysfromrolla

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

からonbeforeunloadイベントは、すべてのunloadイベントをキャプチャしますが、[閉じる]ボタンをクリックしている場合、ユーザ閉鎖ブラウザを処理するためにいくつかのトリックの方法は、ここではサンプルコード

がありますされます
<!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> 
関連する問題