Js检查选项卡是否在后台打开

时间:2015-12-01 17:55:21

标签: javascript jquery

如果带有此脚本的标签在后台播放一分钟(延迟),我需要显示弹出窗口。此代码有效,但存在问题。如果我在后台选项卡中打开页面,这不起作用。我在控制台“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);
    }
});

1 个答案:

答案 0 :(得分:0)

使用网页可见性API。

聆听" onvisibilitychange"。如果页面是"隐藏"然后记录时间。

如果页面是"可见"然后检查页面被隐藏的时间。从现在开始减去它,如果差值超过60000ms,则显示对话框。