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