0

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

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

4

4 回答 4

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
于 2012-04-15T21:58:20.623 回答
0

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

于 2012-04-15T21:57:05.890 回答
0
  1. 记录开窗时间
  2. 在命名窗口中打开页面
  3. 设置 timeinteval 函数(在原始页面上)以检查 1000 毫秒的命名窗口的 location.href
  4. 如果更改(到已完成/感谢页面)或现有用户必须已完成阅读
于 2012-04-15T22:17:19.550 回答
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 中读取该值。

于 2012-04-15T22:23:50.720 回答