2012-02-10 31 views
0

可能性の重複:
How do I stop a page from unloading (navigating away) in JS?ページの離脱の確認時に関数を呼び出すにはどうすればよいですか?

私はオンラインホワイトボードを作成しました。私は彼がページを残したいかどうか(彼が去る前に、ホワイトボードを保存する必要があるため)

$(window).bind('beforeunload', function(){ 
    return 'Are you sure you want to leave?'; 
}); 

は今、私は、ユーザーがページを残すことを確認した場合、この関数を呼び出す必要があり、ユーザーから確認したいです。その機能はjQuery(これは私が行う方法を知っている)からDBに投稿されます&は、ユーザをアクティブから非アクティブに変換します。
私が抱いている問題はです。ユーザーが離婚するとその機能が実行されるのはどうすればわかりますか?
ありがとうございます!ここで


FURTHER ...

$(window).bind('beforeunload', function(){ 
    return 'Are you sure you want to leave?'; 
}); 

window.onunload=pageleave(); 
function pageleave() { 
    var grp=$("#grpid").val(); 
    var login=$("#loginid").val(); 
$.ajax({ 
    type: 'POST', 
    url:'collwb_pageleave.php', 
    data: { GrpID:grp, LogID:login }, 
    cache:false, 
}); 
} 


され、何が起こるか、ページのロードに、pageleaveは実行を取得し、データベースに活動= 0を作ります。これはページのアンロード時に発生するはずです...なぜですか?なぜこれが起こるのだろうか?

+0

Seek and you [shall](http://stackoverflow.com/questions/5102602/confirm-to-leave-the-page-when-editing-a-form-with-jquery)[検索](http: //stackoverflow.com/questions/1299452/how-do-i-stop-a-page-from-unloading-navigating-away-in-js) – afuzzyllama

+0

あなたはおそらく、この問題に遭遇します。ユーザーがブラウザを終了または閉じると、サーバー(AJAX呼び出しなど)が中止されます。 –

+2

ここをクリックしてください:http://stackoverflow.com/questions/6063522/jquery-beforeunload –

答えて

0

v.tsurkaは、this has been answered hereとしています。

基本的に、あなたは(それが直接あなたのbeforeunloadイベントにリンクされているが、「OK」をbeforeunloadダイアログでクリックされた場合にトリガされていない。)ウィンドウのアンロードオブジェクトの上に置くかなりの数の制限があります

$(window).unload(...your function...) 

(Googleに掲載する予定の投稿と仕様で説明しています)。

this postに記載されているように、(電源を切ったり、インターネットに接続しているなどの)通知を受けることさえできないことがたくさんあります。あなたの最善の策は、いくつかのURL parmsを使って重要なメモを送るための、高速でシンプルなGET要求です。

また、ウェブページよりも多くのアプリについて話しているので、データの損失が大きな懸念事項である場合は、ウェブページ製品ではなくサイトに同期する航空アプリを考えるかもしれません。

+0

私はこれを試しました - > $(ウィンドウ).unload(function(){alert( 'Bye。'); –

+0

それは私にクロムの警告を与えませんでした:( –

+0

私は正しいことをしています。 –

関連する問題