Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 计时器在时间结束时发出警报_Javascript_Timer_Countdowntimer - Fatal编程技术网

Javascript 计时器在时间结束时发出警报

Javascript 计时器在时间结束时发出警报,javascript,timer,countdowntimer,Javascript,Timer,Countdowntimer,我做了一个倒计时。时间到了,它会发出警报/弹出窗口。 我编写了如下代码: function cd(){ now = new Date(); diff = end - now; diff = new Date(diff); var sec = diff.getSeconds(); var min = diff.getMinutes(); if(now >= end) { clearTimeout(timerID); window.alert("Time is up

我做了一个倒计时。时间到了,它会发出警报/弹出窗口。 我编写了如下代码:

function cd(){
now = new Date();
diff = end - now;
diff = new Date(diff);
var sec = diff.getSeconds();
var min = diff.getMinutes();

if(now >= end)
    {
    clearTimeout(timerID);

    window.alert("Time is up. Press OK to continue.");
    document.forms[0].submit();
    }
    else
    {
    document.getElementById("cdtime").innerHTML =  min + ":" + sec;
    }
    timerID = setTimeout("cd()", 10); 
}
window.onload = cd
这是自动提交计时器。时间到了,它会提交表格。问题是,当我执行
window.alert时,即使我单击“
ok
”,它也会保持警惕。单击“确定”后,我应该做什么?它将重定向到
文档。表单[0]。提交()

尝试以下操作:

if (window.confirm(‘put stuff here’)) {
window.location.href=‘put link here’;
}
else {
var x = "";
}

timerID=setTimeout(“cd()”,10)始终在代码中执行。它应该在else块中。此外,不需要清除超时

(如果使用
setInterval()
函数而不是
setTimeout()
函数,则必须清除interval)

试试这个

function cd(){
    now = new Date();
    diff = end - now;
    diff = new Date(diff);
    var sec = diff.getSeconds();
    var min = diff.getMinutes();

    if(now >= end)
        {
        window.alert("Time is up. Press OK to continue.");
        document.forms[0].submit();
        }
    else
        {
        document.getElementById("cdtime").innerHTML =  min + ":" + sec;
        setTimeout("cd()", 10); 
        }
    }
window.onload = cd;

计时器每10毫秒触发一次,因此警报实际上正在刷新


读这篇文章,给你一个更好的想法,希望这对你有所帮助

你知道10是毫秒而不是秒,对吗?你能发布整个“cd”函数吗?好的,我已经编辑了代码..我不能做window.location,因为我想自动提交表单所以现在我看到你的函数cd(),你应该有名为var now=new Date()的变量;等等。谢谢兄弟。它让我在使用计时器时有了更好的视野。真的帮了我很多忙,即使是窗口。警报不显示。:)