我正在创建一个MCQs测验,每个问题都有一段时间。我还在脚本中使用onbeforeunload
来防止用户意外导航离开测验页面。但是当显示该警报时,我的setInterval
计数器停止工作。即使有警报,如何使倒计时不停止?
为了进一步解释我的问题,这里是FIDDLE
答案 0 :(得分:4)
浏览器对话框正在阻止。所有脚本在打开时都会停止执行。你无法改变这种行为。
答案 1 :(得分:2)
不是以90秒开始并尝试每秒减少1秒,而是计算当前日期+ 90秒以获得结束日期。然后,在setTimeout
的每次调用中,计算到结束日期之前的当前秒数。
当警报可见时,计时器不会前进,但是当警报被取消时,它将跳到应该的位置。
答案 2 :(得分:2)
可能的解决方法是,如果调用var timeCount = new Date()
,则声明beforeunload()
来存储时间,并使用它来计算传递时间/错过的秒数。但是否则 Diodeus 所说的是正确的。