如果带有此脚本的标签在后台播放一分钟(延迟),我需要显示弹出窗口。此代码有效,但存在问题。如果我在后台选项卡中打开页面,这不起作用。我在控制台“1”中看到两次写入“2”,在我第一次在背景选项卡上写了1次。我想我需要检查一下函数document.hasFocus(),这样我的想法才能正常工作。怎么做?
var showPopupTimeout;
$(window).blur(function () {
if (!checkCompleted) {
console.log("2");
showPopupTimeout = setTimeout(checkClientCalled, delay);
}
});
$(window).focus(function () {
if (!checkCompleted) {
console.log("1");
clearTimeout(showPopupTimeout);
}
});
答案 0 :(得分:0)
使用网页可见性API。
聆听" onvisibilitychange"。如果页面是"隐藏"然后记录时间。
如果页面是"可见"然后检查页面被隐藏的时间。从现在开始减去它,如果差值超过60000ms,则显示对话框。