2012-04-15 47 views
0

我有一个简单的用户调查表单,其中有一个部分,用户需要点击一个链接,阅读链接内的页面,然后回来继续表单。目前,我有一个父母的HTML页面,我从中提供了一个链接,以便在不同的窗口/选项卡中打开一个子页面。如何获得特定窗口打开的时间?

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

+5

我感到又一次企图迫使人们阅读合法化,他们不想阅读。通过撰写清晰,简单,简短的摘要可以更好地解决这个问题。 – Quentin 2012-04-15 21:51:20

+1

如果有一个烦人的计时器,人们只会做别的事情。如果有人想阅读,他会,如果不是,他不会。不要用计时器惹恼你的用户 - 尤其是因为他们对于读取速度很快的osmeone通常太长。 – ThiefMaster 2012-04-15 21:52:12

+1

@Quentin:这是针对我正在构建的产品的用户调查。 – Legend 2012-04-15 21:54:03

回答

0

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

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你可以减去这两个饼干的价值和除以1000获得秒,因为这些时间将以毫秒为单位。

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

ajax将无法正常工作。 – Bergi 2012-04-15 22:02:56

+0

ohh很可能...我错过了...然后可能cookie是他剩下的 – 2012-04-15 22:04:09

+0

或domstorage(和co),如果他确实需要这个值只为一个脚本。但我想一个cookie,在给定的超时后设置以标记文档“读取”可能是最好的方法。 – Bergi 2012-04-15 22:12:07

0
  1. 记录窗口的开放时间
  2. 打开一个名为窗口
  3. 设置一个timeinteval功能的页面(原始页面上)检查的指定窗口放在location.href说1000 MS
  4. 如果改变(以成品/三江源页)或不存在的用户必须读完
0

您应该设置一个cookie或DOM存储媒体e值,而页面读取是打开的。在该页面中:

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中读取该值。

相关问题