2012-04-04 9 views
4

ユーザーがページを離れても、投稿要求を送信する必要があります。これまでのところ私の持っているものですが、動作していません。jQuery post on window.unload(ウィンドウまたはブラウザが閉じる)

$(window).unload(function(){   
$.post("http://localhost/project/quizTime.php",{action:"updateTime",userID:userid,quizID:quizid,newTime:currentTime*1000,rand:Math.random()},function(time) 
    { 
    }); 
}); 

PHPコードは、window.unloadをclick機能に置き換えてテストしました。これは完全に動作し、必要に応じてすべてを更新します。つまり、$(window).unloadトリガーが問題です。

答えて

5

は...問題が$ .postにある警告表示された場合他の何かをする。

1

jQueryのAPIドキュメントからの

unloadイベントの正確なハンドリングブラウザのバージョンによって異なります。たとえば、Firefoxのいくつかのバージョンでは、リンクをたどるとイベントがトリガーされますが、ウィンドウが閉じられているときはトリガーされません。実際の使用では、動作はサポートされているすべてのブラウザでテストし、独自のbeforeunloadイベントとは対照的です。

このイベントを別の方法で処理するこれらのバージョンのFirefoxを使用しているようです。 Documentationに記載されているように、を事前にアンロードイベントを試してください。

-1

あなたはこれで

$(window).unload(function(){   
$.post("http://localhost/project/quizTime.php",{action:"updateTime",userID:userid,quizID:quizid,newTime:currentTime*1000,rand:Math.random()},function(time) 
    { 
    }); 
}); 

交換する場合:

$(window).unload(function() { alert("Bye now!"); }); 

とテストを、何が起こりますか?

$.ajax({ 
    type: 'POST', 
    async: false, 
    url: 'YOUR_URL', 
    data: 'YOUR_DATA' 
}); 

をこのようブラウザで前に終了するための要求を待つ:あなたはこのように、誤った設定asyncオプションでAjaxのメソッドを使用する必要があります

関連する問題