2012-04-06 28 views
1
<script type="text/javascript"> 
    leaveSiteStart = new Date; 
    function leftSite() { 
     var leaveSiteEnd = (new Date - leaveSiteStart); 
     var roundleaveSiteEnd = Math.round(leaveSiteEnd, 1); 
     _gaq.push(['pageTrackerTime._trackEvent', 'Category', 'Action', document.getElementById('Name').value]); 
    } 
    window.onbeforeunload = leftSite; 
</script> 

私はこのコードを使用して、ブラウザを閉じる前にページに費やしたユーザーの滞在時間を猶予したり、ログアウトしてページを放置しました。ブラウザで閉じる/ログアウトするときのJavaScriptコード

しかし、イベントをキャッチできませんでした...コードに間違っていますか?

+1

リクエストを送信するまでにページがなくなり、リクエストはキャンセルされます。デバッガの[ネットワーク]タブを見てみると、その要求に対して「キャンセル」ステータスが表示されます。もしそうなら、それが理由です。 – Joseph

答えて

0

現代のブラウザでは、ユーザーを放置することは基本的に不可能です。 FF4が出てきたときに、彼らは出口を一時停止するためにtimed whileループを使う方法を打ち破った。

0

_gaqは非同期呼び出しブラウザであるため、呼び出しが完了するまで待機しないでください。同期呼び出しを行うようにしてください。

jquery ajaxでは、非同期フラグをfalseに設定して同期タスクを実行できます。同じ方法があるかどうかを確認してください。

関連する問題