我正在查看具有全局计时器的第三方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类似的问题,并且微软知道他们正在随机化任何在模态弹出窗口后排队的计时器 .