我有一个简单的幻灯片,我在客户端的主页上使用setInterval来定时旋转。当页面/浏览器不在焦点时暂停setInterval
防止浏览器搞砸了setInterval的页面时未聚焦(另一个选项卡被查看,或其他程序),我使用的是:
function onBlur() {
clearInterval(play);
};
function onFocus() {
mySlideRotateFunction();
};
if (/*@[email protected]*/false) {
document.onfocusin = onFocus;
document.onfocusout = onBlur;
} else {
window.onfocus = onFocus;
window.onblur = onBlur;
}
凡mySlideRotateFunction设置的setInterval和运行一些jQuery。虽然这在大多数情况下都很有效,但我发现有时看起来好像onBlur没有运行,当我回到页面时,时序已经“建立起来了”,并且轮换变得疯狂。
我不能确定一个原因,为什么有时会发生这种情况,而不是其他人。
我的问题是我的代码存在问题,并且没有人有更好的建议来在浏览器窗口不在焦点时“暂停”setInterval?
感谢
我遇到了同一个问题,因为前一段时间我正在做一个项目 - 我们试图修复那个恼人的“bug”..但最后我们使用了代码......因为我们可以当这种奇怪的行为发生时重现:( +1希望有人在那里与解决方案:) – walialu