js 获取页面停留时间

JavaScript013

js 获取页面停留时间,第1张

        (function(){

            var startTime = Math.ceil(new Date().getTime()/1000)//单位秒

            var play_time = ""

            //获取视频标签播发时间

            $('#video-active').on("timeupdate",function(event){

                       var all_time = this.duration

                       play_time = this.currentTime

                    })

               //初始化时间

                getDuration = function(){

                    var time = '',

                        hours = 0,

                        minutes = 0,

                        seconds = 0,

                        endTime = Math.ceil(new Date().getTime()/1000),

                        duration = endTime - startTime

                    if(play_time){

                        duration = play_time

                    }

                    // var g_time = ""

                    var dt = localStorage.getItem("param")

                    if(dt == null || dt == "" || dt == undefined){

                        localStorage.setItem("param", duration)

                        // data = param

                    }else{

                        duration = duration + parseInt(dt)

                    }

                    localStorage.setItem("param", duration)

                    hours = Math.floor(duration/3600)//停留小时数

                    minutes = Math.floor(duration%3600/60)//停留分钟数

                    seconds = Math.floor(duration%3600%60)//停留秒数

                    time = (hours <10 ? '0' + hours : hours) + ':' + (minutes <10 ? '0' + minutes : minutes) + ':' + (seconds <10 ? '0' + seconds : seconds)

                    $.ajax({

                        type: "POST",

                        url: "url",

                        data: {time: time,id: id,play_time: play_time},

                        success: function(data) {

                            console.log(data)

                        },

                        error: function() {

                        }

                    })

                }       

            //监听窗口关闭事件

            window.onbeforeunload = function(e){

                var duration = getDuration()

                //request(duration)

            }

        })()

    </script>

div上绑定一个hover事件,并开始计时。以jquery为例。

var tid = 0

$( "#div" ).hover( function() {

   tid = setTimeout( function() {

        //当触发hover就开始自动在1秒后执行相应代码

    }, 1000 )

}, function() {

    clearTimeout( tid )//当在1秒内退出了hover事件就取消计时代码

} )

<html>

<head><title>你好啊!</title>

<script type="text/javascript">

var dk = new Date()

function gbz() {

var gb = new Date()

var minutes = gb.getMinutes() - dk.getMinutes()

var seconds = gb.getSeconds() - dk.getSeconds()

var time = minutes + "分" + seconds + "秒"

alert(time)

}

</script>

<body onUnload="gbz()">

</body>

</head>

</html>

第一:[var 变量]与[变量]的声明方式不同,他们的命名空间不同,所以你调用有问题

第二:注意编码规范,[<body onUnload="gbz()">]

第三:建议你把js代码,放到[head]标签中,这样会在获取http请求包头的时候先把脚本加载,便于代码调用;当然,你也可以根据不同情况放在其他位置,但要注意放在不同位置时的调用时机也是不同的

希望你加强基础