我尝试在javascript中编写setTimeout函数,并遇到一些问题。 使用IE时,我单击鼠标右键并显示上下文菜单,setTimeout停止工作。
这是我的代码。
var t = 30000;
function myTimer(){
if(t <=0 ){
console.log('STOP');
}else{
setTimeout(myTimer, 1000);
console.log(t/1000);
}
t-=1000;
};
有人有这个问题吗? 谢谢。
答案 0 :(得分:0)
您错过了调用timer
函数的操作。尝试这样。
var t = 30000;
function myTimer(){
if(t <=0 ){
console.log('STOP');
}else{
setTimeout(myTimer, 1000);
console.log(t/1000);
}
t-=1000;
};
myTimer()
答案 1 :(得分:0)
我用您的示例代码进行了测试,并且能够产生问题。
这是测试结果。
根据我的测试结果,我发现该问题与 setTimeout 没有关系。我还使用此JS Coundown代码示例进行了测试,并且产生了同样的问题。
问题是在上下文菜单可见时IE暂停了JS代码的执行。
看起来是设计使然,我没有任何解决方案。
作为一种变通方法,您可以尝试使用JavaScript禁用右键单击(仅适用于IE),这可能有助于避免此问题。