我有一个简单的用户调查表,其中有一个部分用户需要单击链接,阅读链接内的页面,然后返回继续表单。目前,我有一个父 HTML 页面,我从中提供一个链接以在不同的窗口/选项卡中打开子网页。
如何获取用户在子窗口/选项卡上花费的时间?
我有一个简单的用户调查表,其中有一个部分用户需要单击链接,阅读链接内的页面,然后返回继续表单。目前,我有一个父 HTML 页面,我从中提供一个链接以在不同的窗口/选项卡中打开子网页。
如何获取用户在子窗口/选项卡上花费的时间?
通过类似的方式收听用户的点击
$('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
用户是通过单击链接离开页面,还是第二个页面显示在第一个页面内?在第一种情况下,您必须使用 cookie 来存储点击时间,在第二种情况下,使用变量。可以使用 检索时间new Date()
。
您应该在要读取的页面打开时设置 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 中读取该值。