在Chrome中显示alert()时,setTimeout()过早触发

时间:2010-12-16 19:06:30

标签: javascript webkit settimeout alert confirm

我有以下代码:

t = setTimeout(function () { blah();  }, 900000);

基本上,在页面加载15分钟后调用它。

但是,如果在某些时候我显示了alert()或confirm(),那么一旦它被解除,blah()就会因某种原因被执行。

据我所知,这只发生在Safari / Chrome中。它不会发生在IE / Firefox中。

有什么想法,甚至更好,如何解决这个问题?

谢谢!
丹尼尔

3 个答案:

答案 0 :(得分:2)

你并不孤单,这就是错误:code.google.com/p/chromium/issues/detail?id=43796

答案 1 :(得分:1)

铬团队尚未解决此问题。

我发现,通过在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);
}
希望它有所帮助。

答案 2 :(得分:0)

你确定这是原因,我运行了这个演示而无法复制它。

“超时”!将在10秒后出现,在手前点击框进行测试。

http://jsfiddle.net/PFgaJ/

相关问题