【发布时间】:2011-09-20 10:14:15
【问题描述】:
我在客户的主页上制作了一个简单的幻灯片,使用 setInterval 来计时。
为了防止浏览器在页面不在焦点时(正在查看另一个选项卡或另一个程序)时搞砸 setInterval,我正在使用:
function onBlur() {
clearInterval(play);
};
function onFocus() {
mySlideRotateFunction();
};
if (/*@cc_on!@*/false) {
document.onfocusin = onFocus;
document.onfocusout = onBlur;
} else {
window.onfocus = onFocus;
window.onblur = onBlur;
}
mySlideRotateFunction 设置 setInterval 并运行一些 jQuery。虽然这在大多数情况下都有效,但我发现有时 onBlur 似乎没有运行,当我返回页面时,时间已经“建立”并且旋转变得疯狂。
我无法确定为什么偶尔会发生这种情况,而不是其他原因。
我的问题-我的代码有问题吗,当浏览器窗口失焦时,是否有人对“暂停”setInterval 有更好的建议?
谢谢
【问题讨论】:
-
前段时间我在做一个项目时遇到了同样的问题 - 我们试图修复那个烦人的“错误”..但最后我们使用了原来的代码..因为当这种奇怪的行为发生时我们无法重现:(+1希望有人有解决方案:)
标签: javascript jquery setinterval onblur