gpt4 book ai didi

javascript - 是否有可能知道用户在页面上花费了多长时间?

转载 作者:数据小太阳 更新时间:2023-10-29 05:02:40 24 4
gpt4 key购买 nike

假设我有一个浏览器扩展,它运行用户访问的 JS 页面。

是否有“outLoad”事件或类似事件开始计数并查看用户在页面上花费了多长时间?

最佳答案

我假设您的用户打开一个选项卡,浏览一些网页,然后转到另一个网页,返回到第一个选项卡等。您想要计算用户花费的确切时间。另请注意,用户可能会打开一个网页并使其保持运行但就离开了。一个小时后回来,然后再次访问该页面。您不会希望将他离开计算机的时间计为在网页上花费的时间。为此,以下代码每 5 分钟执行一次文档检查。因此,您的实际时间可能会相差 5 分钟,但您可以根据需要调整间隔以检查焦点。另请注意,用户可能只盯着视频看 5 分钟以上,在这种情况下,以下代码不会计算在内。您将不得不运行智能代码来检查是否有闪光灯在运行或其他东西。

这是我在内容脚本中所做的(使用 jQuery):

$(window).on('unload', window_unfocused);
$(window).on("focus", window_focused);
$(window).on("blur", window_unfocused);
setInterval(focus_check, 300 * 1000);

var start_focus_time = undefined;
var last_user_interaction = undefined;

function focus_check() {
if (start_focus_time != undefined) {
var curr_time = new Date();
//Lets just put it for 4.5 minutes
if((curr_time.getTime() - last_user_interaction.getTime()) > (270 * 1000)) {
//No interaction in this tab for last 5 minutes. Probably idle.
window_unfocused();
}
}
}

function window_focused(eo) {
last_user_interaction = new Date();
if (start_focus_time == undefined) {
start_focus_time = new Date();
}
}

function window_unfocused(eo) {
if (start_focus_time != undefined) {
var stop_focus_time = new Date();
var total_focus_time = stop_focus_time.getTime() - start_focus_time.getTime();
start_focus_time = undefined;
var message = {};
message.type = "time_spent";
message.domain = document.domain;
message.time_spent = total_focus_time;
chrome.extension.sendMessage("", message);
}
}

关于javascript - 是否有可能知道用户在页面上花费了多长时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17804078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com