右键单击IE时,setTimeout()/ setInterval()停止

时间:2018-02-09 15:35:50

标签: javascript internet-explorer contextmenu settimeout

我的网站已经使用setTimeout()完成了倒计时但是我意识到当用户右键单击浏览器上的任何位置时,使用Internet Explorer 11(我猜的更旧),倒计时才会停止,因为& #34;上下文菜单"从浏览器打开。当上下文菜单关闭时,倒计时开始。

在此倒计时期间阻止右键单击的解决方案在我的情况下不是一个有用的解决方案。 我还检查了requestAnimationFrame()方法,但如果用户最小化浏览器,倒计时也会停止。

倒计时不会永远持续,可以持续3分钟到10秒。

任何变通方法/想法?

由于

2 个答案:

答案 0 :(得分:2)

您无法依靠IllegalStateExceptionsetTimeout来跟踪时间。它们将在它们的意图时大致运行,但它取决于其他正在占用处理时间的内容以及您发现的一些阻塞事件。您应该将它们视为更新时钟的一种方法,但将时钟状态保持为启动时间与计时器功能触发时间之间的差异。因为函数触发的时间不准确,所以我尝试将间隔设置为低于我想要的间隔。如果我希望它每秒钟打勾,那么我将间隔设置为半秒或四分之一秒,以确保我能更快地弥补未命中。

这是一个粗略的例子:



setInterval




答案 1 :(得分:-2)

将初始时间保存到变量并将其与当前时间间隔进行比较?