如何获得特定窗口打开的时间?

时间:2012-04-15 21:48:45

标签: javascript jquery html forms

我有一个简单的用户调查表单,其中有一个部分,用户需要点击链接,阅读链接中的页面,然后返回继续表单。目前,我有一个父HTML页面,我提供了一个链接,可以在不同的窗口/选项卡中打开子网页。

如何获取用户在子窗口/选项卡上花费的时间?

4 个答案:

答案 0 :(得分:1)

通过

之类的内容听取用户的点击
$('a').on('click', function(){
    var d = new Date();
    var curr_time = d.getTime();
    //save in cookie1 
})

现在在用户正在阅读的另一个html页面中....做同样的事情,但只在窗口卸载

 $(window).unload(function(){
    var d1 = new Date();
    var curr_time1 = d1.getTime();
    //save in cookie2 
})

另外保存....

然后当他/她回来时,我的意思是它的onfocus你可以减去这2个cookie的值并除以1000得到秒,因为这些时间将以毫秒为单位。

 (cookie1 -cookie2)/1000 seconds  //if the cookie thing is used

答案 1 :(得分:0)

用户是通过点击链接离开页面,还是第一页显示在第一页?在第一种情况下,您必须使用cookie来存储点击时间,在第二种情况下,使用变量。可以使用new Date()检索时间。

答案 2 :(得分:0)

  1. 记录开窗时间
  2. 在指定窗口中打开页面
  3. 设置timeinteval函数(在原始页面上)以检查指定窗口的location.href,例如1000毫秒
  4. 如果更改(已完成/感谢页面)或现有用户必须已完成阅读

答案 3 :(得分:0)

您应该在页面读取打开时设置cookie或DOM存储值。在该页面中:

var isFocused = true; // just opened
var secondsLookedupon = 0; // eventually init with a saved value
window.onblur = function(){ isFocused=false; }; // use addEventHandler and co
window.onfocus = function(){ isFocused=true; }; // use addEventHandler and co
window.setInterval(function(){
    if (!isFocused) {
        secondsLookedupon++;
        document.cookie.name = secondsLookedupon; // set a cookie in some way
        window.sessionStorage.setItem("name", secondsLookedupon); // or use DOM storage
    }
}, 1000);

从调查表单页面,您可以随时从cookie或domstorage中读取该值。