1

我正在查看具有全局计时器的第三方 javascript。计时器用于在会话到期后 5 分钟内通过模式警报框警告用户,并且任何鼠标单击或击键都会重置计时器。

定时器在 OnLoad 期间设置。我想添加第二个计时器,但我注意到如果在显示模式警报框时第二个计时器到期,则行为是不可预测的。为了简单起见:

var myFunkyTimer1;
var myFunkyTimer2;

function myOnLoadFunction() {
  // alert in 10 seconds
  myFunkyTimer1 = setTimeout(function(){alert("Get Funky!")}, 10000);
  // alert immediately after user clicks ok
  myFunkyTimer2 = setTimeout(function(){alert("GET RANDOM!")}, 11000); 
}

这在 IE8 中运行良好。但是,在 IE9 中,第一个警告框会在页面加载 10 秒后显示,但如果我等待超过一秒单击“确定”,则第二个警告框将在 2-11 秒后的某个时间才会显示。

我可以解决这个问题,但我很好奇是否有人在 IE9 上看到过与 setTimeout 类似的问题,以及微软是否知道他们正在随机化任何在模式弹出窗口后面排队的计时器。

4

0 回答 0