1
說我有兩個單獨的瀏覽器窗口打開:只有當窗口焦點時,Javascript纔會執行定時器功能?
function onload() {
setTimeout("dosomething", 2000);
}
function dosomething() {
$.ajax({
url: "someurl",
success: function (data) {
document.write("Hello");
}
});
setTimeout("dosomething", 2000);
}
我想要讓這個招呼每兩秒鐘打印,只有當窗口處於焦點。如果窗口沒有焦點,那麼定時器將基本上暫停(換句話說,定時器將停止滴答,不會調用dosomething),直到用戶點擊未聚焦的瀏覽器窗口,計時器將恢復並且你好詞將繼續被打印,而另一個窗口將停止計時器,反之亦然。
我該如何做到這一點?
**永不**將字符串傳遞給'setInterval()'或'setTimeout()'。這樣做與使用'eval()'一樣糟糕,並且只要使用變量,就會導致不可讀和可能不安全的代碼,因爲您需要將它們插入到字符串中,而不是傳遞實際變量。正確的解決方案是'setInterval(function(){/ * your code *)},msecs);'。 'setTimeout()'同樣適用。如果你只想調用一個沒有任何參數的函數,你也可以直接傳遞函數名:'setInterval(someFunction,msecs);'(注意函數名後面有** no **'()') – ThiefMaster