我想向用户显示网页通知,如果他们将页面打开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);
};
想要以这样一种方式制作:只有当用户多次离开页面时,通知才会每次触发......但如果他回到页面则不会出现..
嗯,这可能是由于测试。您必须意识到每次离开页面时都会触发window.onblur。因此,如果您离开,进入,离开,进入,离开,您将获得3个弹出窗口;每个事件独立运行。
你应该做的是在window.onfocus事件中调用clearTimeout();不要忘记在弹出处理代码和onfocus事件中清除myVar变量(并测试它是否为null)。