gpt4 book ai didi

Javascript仅在窗口处于焦点时才执行计时器函数?

转载 作者:行者123 更新时间:2023-11-28 09:52:13 25 4
gpt4 key购买 nike

假设我打开了两个单独的浏览器窗口:

function onload() {
setTimeout("dosomething", 2000);
}

function dosomething() {
$.ajax({
url: "someurl",
success: function (data) {
document.write("Hello");
}
});
setTimeout("dosomething", 2000);
}

我想让它仅在窗口处于焦点状态时每两秒打印一次 hello。如果窗口未获得焦点,则计时器本质上会暂停(换句话说,计时器将停止计时,不会调用执行某些操作),直到用户单击未获得焦点的浏览器窗口,计时器将恢复该窗口并Hello 单词将继续打印,而另一个窗口将停止计时器,反之亦然。

我该如何实现这个目标?

最佳答案

这是一个棘手的问题,并且取决于浏览器。

var timer;    
function onBlur() {
timer = setTimeout("dosomething", 2000);
};
function onFocus(){
clearTimeout(timer);
};
if (/*@cc_on!@*/false) { // check for Internet Explorer
document.onfocusin = onFocus;
document.onfocusout = onBlur;
} else {
window.onfocus = onFocus;
window.onblur = onBlur;
}

关于Javascript仅在窗口处于焦点时才执行计时器函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10762200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com