多次出现Web通知

问题描述 投票:0回答:1

我想向用户显示网页通知,如果他们将页面打开10秒钟。我已经获得了通知许可。问题是,即使用户在不到10秒的时间内返回页面,通知也会多次发生。已经使用clearTimeout来刷新myVar值....但没有运气.....任何帮助!

var myVar;
window.onblur = function myFunction() {
    myVar = setTimeout(function () {
        var notification = new Notification("XXX page is open in background ");
    }, 10000);
    clearTimeout(myVar);
};

想要以这样一种方式制作:只有当用户多次离开页面时,通知才会每次触发......但如果他回到页面则不会出现..

notifications settimeout onblur cleartimeout
1个回答
0
投票

嗯,这可能是由于测试。您必须意识到每次离开页面时都会触发window.onblur。因此,如果您离开,进入,离开,进入,离开,您将获得3个弹出窗口;每个事件独立运行。

你应该做的是在window.onfocus事件中调用clearTimeout();不要忘记在弹出处理代码和onfocus事件中清除myVar变量(并测试它是否为null)。

© www.soinside.com 2019 - 2024. All rights reserved.