2011-07-07 10 views
5

ブラウザが別のページに移動しているかどうかを確認する必要があります。 私の考えは、ブラウザが別のページにナビゲートしているかどうかを検出

  1. 体のunloadイベントの真isNavigating場合、別のページへ
  2. チェックをナビゲートするすべてのアンカーのisNavigating = trueを作るために、グローバル変数var isNavigating = false;
  3. バインドクリックイベントを作成します。

他のアイデアはありますか?推薦?

+1

は、私はあなたがそれを明確にあなたは彼らが離れてナビゲートしているかどうかを知りたいか作るためにあなたの質問を言い替えるしたいかもしれないと思う、彼らが閉じているかどうか(すなわちだけではなく、どちらかが起こっている知って、何が起こっているかを知るために)。ちょうど今書いてあるように、あなたがそれらの違いを伝えることができるかどうかはあいまいです。 – ADW

+0

はい、それは正しいです。 –

+0

ユーザーがアドレスバーに新しいウェブサイトを入力してEnterキーを押したときにナビゲーションが表示された場合、そのタブとユーザーを区別する方法はありません。 –

答えて

0

ウィンドウのonunloadイベントにバインドするだけです。

+0

私はすでにやりました。私はページのナビゲートやクローズを知る必要があります。 –

7

これは、次のスクリプトで行うことができます。

<script type="text/javascript"> 
    window.onbeforeunload = function(){ return;} 
</script> 

ただし、ナビゲートをキャンセルする場合は、気にしないでください。私が知る限り、それは可能ではありません。


以下のコードは、ユーザーがリンクをクリックしたかどうかを確認します。

var checkAnchorClick = false; 

$(document).ready(function() { 
    $("a").live("click", function() { 
     checkAnchorClick = true; 
    }); 
}); 

$(window).unload(function() { 
    if (checkAnchorClick) 
     alert("User clicked a link..."); 
    else 
     alert("Something else..."); 
}); 
+1

実際には、それを取り消すことはできますが、ユーザーは確認する必要があります:http://jsfiddle.net/thomas4g/AA3qY/3/ –

+0

@ÜmitAkkaya http://jsfiddle.net/thomas4g/AA3qY/3 /は、リンクをクリックしたり、タブを閉じたり、ブラウザを閉じたりするときにonbeforeunloadが動作することを示します。 –

関連する問題