メンバーがオンラインであることに関する質問に対処する場合、多くの場合、ブラウザーが閉じているかどうかに基づいてユーザーがオフラインであるかどうかを判断し、セッションとアプリケーションからユーザーを削除する必要があります。
ブラウザはステートレスであるため、ブラウザの終了をキャプチャするときは 2 つの状況が考えられます。
1. ブラウザを実際に閉じます (a. 閉じるボタンをクリックします。 b. タスクバーを右クリックして閉じます。 c. ブラウザを閉じます。) alt F4 を押して閉じます)
2. ブラウザを更新します。
これら 2 つのアクションを区別するにはどうすればよいですか?
1. Javascript コードの処理方法:
function window.onbeforeunload()
{
// ユーザーがブラウザの右上隅 ボタンを閉じるか、alt F4 を押して閉じます
if(event.clientX>document.body.clientWidth&&event.clientY{
//alert( "閉じるボタンをクリックします");
document.getElementById("hiddenForm:hiddenBtn").click();
// window.event.returnValue="このページを終了してもよろしいですか?";
}
//ユーザークリック タスクバーを右クリックして閉じます。 s または alt F4 を押して閉じます
else if(event.clientY > document.body.clientHeight ||event.altKey)
{
//alert("タスクバーを右クリックして閉じます" );
document.getElementById("hiddenForm:hiddenBtn").click();
// window.event.returnValue="このページを終了してもよろしいですか?"; >//その他の状況は Refresh
else
{
//alert("Refresh page")
}
}
whereevent.clientX マウスカーソル X 座標
document.body.clientWidth フォームクライアント領域幅
event.clientY マウスカーソル Y 座標
event.altKey alt キーが押されたかどうか
2. イベント取得方法:
ユーザーがページをアンロードする前に onbeforeunload イベントをトリガーする (ユーザーがページのアンロードによって onunload イベントをトリガーすることを確認するには「はい」を選択します。それ以外の場合、ページは何も操作せずに返されます。)