我有以下代码:
t = setTimeout(function () { blah(); }, 900000);
基本上,在页面加载 15 分钟后调用 blah。
但是,如果在某个时候我显示了一个 alert() 或一个 confirm(),那么一旦它被解除,blah() 就会由于某种原因被执行。
据我所知,这只发生在 Safari/Chrome 中。它不会发生在 IE/Firefox 中。
任何想法发生了什么,甚至更好,如何解决这个问题?
谢谢!
丹尼尔
我有以下代码:
t = setTimeout(function () { blah(); }, 900000);
基本上,在页面加载 15 分钟后调用 blah。
但是,如果在某个时候我显示了一个 alert() 或一个 confirm(),那么一旦它被解除,blah() 就会由于某种原因被执行。
据我所知,这只发生在 Safari/Chrome 中。它不会发生在 IE/Firefox 中。
任何想法发生了什么,甚至更好,如何解决这个问题?
谢谢!
丹尼尔
Chromium 团队还没有解决这个问题。
我发现,通过在 clearTimeout 和 setTimeout 之间引入一些延迟,可以解决问题。
// mouse event
document.onmousemove = function(){
clearTimeout(timeout);
debug("Idle Timer reinitialized"); // apparently this function introduces some delay. it just works. You may want to include another timer here like for 2-3 seconds.
timeout = setTimeout(logoutNow, systemTimeout);
}
希望能帮助到你。