Javascript 如何显示实时倒计时,然后关闭窗口?

Javascript 如何显示实时倒计时,然后关闭窗口?,javascript,html,timer,countdown,Javascript,Html,Timer,Countdown,我想在以下网页上显示一个实时的分:秒倒计时,当到达00:00时,显示一条警报消息,说“时间到了!”,并关闭窗口 我该怎么做 谢谢你的帮助 <html> <head> <title>Quiz!</title> </head> <body> <font face="Helvetica" size="4"> <b> <center><h

我想在以下网页上显示一个实时的
分:秒
倒计时,当到达
00:00
时,显示一条
警报
消息,说
“时间到了!”
,并关闭窗口

我该怎么做

谢谢你的帮助

<html>
<head>
<title>Quiz!</title>
</head>

<body>
<font face="Helvetica" size="4">   
  <b> 
<center><h1>Sample Test 1 </h1></center>
<p><div id="quiz"></div>
<button id="submit">Get Results</button>
<div id="results"></div>
<script>
var myQuestions = [
    {
        question: "What is 10/2?",
        answers: {
            a: '3',
            b: '5',
            c: '115'
        },
        correctAnswer: 'b'
    },
    {
        question: "What is 30/3?",
        answers: {
            a: '3',
            b: '5',
            c: '10'
        },
        correctAnswer: 'c'
    }
];

var quizContainer = document.getElementById('quiz');
var resultsContainer = document.getElementById('results');
var submitButton = document.getElementById('submit');

generateQuiz(myQuestions, quizContainer, resultsContainer, submitButton);

function generateQuiz(questions, quizContainer, resultsContainer, submitButton){

    function showQuestions(questions, quizContainer){
        // we'll need a place to store the output and the answer choices
        var output = [];
        var answers;

        // for each question...
        for(var i=0; i<questions.length; i++){
            
            // first reset the list of answers
            answers = [];

            // for each available answer...
            for(letter in questions[i].answers){

                // ...add an html radio button
                answers.push(
                    '<label>'
                        + '<input type="radio" name="question'+i+'" value="'+letter+'">'
                        + letter + ': '
                        + questions[i].answers[letter]
                    + '</label>'
                );
            }

            // add this question and its answers to the output
            output.push(
                '<div class="question">' + questions[i].question + '</div>'
                + '<div class="answers">' + answers.join('') + '</div>'
            );
        }

        // finally combine our output list into one string of html and put it on the page
        quizContainer.innerHTML = output.join('');
    }


    function showResults(questions, quizContainer, resultsContainer){
        
        // gather answer containers from our quiz
        var answerContainers = quizContainer.querySelectorAll('.answers');
        
        // keep track of user's answers
        var userAnswer = '';
        var numCorrect = 0;
        
        // for each question...
        for(var i=0; i<questions.length; i++){

            // find selected answer
            userAnswer = (answerContainers[i].querySelector('input[name=question'+i+']:checked')||{}).value;
            
            // if answer is correct
            if(userAnswer===questions[i].correctAnswer){
                // add to the number of correct answers
                numCorrect++;
                
                // color the answers green
                answerContainers[i].style.color = 'lightgreen';
            }
            // if answer is wrong or blank
            else{
                // color the answers red
                answerContainers[i].style.color = 'red';
            }
        }

        // show number of correct answers out of total
        resultsContainer.innerHTML = numCorrect + ' out of ' + questions.length;
    }

    // show questions right away
    showQuestions(questions, quizContainer);
    
    // on submit, show results
    submitButton.onclick = function(){
        showResults(questions, quizContainer, resultsContainer);
    }

}
</script>
    
    
</body>
</html>

测验
样本测试1

取得成果
var myQuestions=[
{
问题:“10/2是什么?”,
答复:{
a:‘3’,
b:‘5’,
c:'115'
},
正确答案:“b”
},
{
问题:“什么是30/3?”,
答复:{
a:‘3’,
b:‘5’,
c:'10'
},
正确答案:“c”
}
];
var quizContainer=document.getElementById('quick');
var resultcontainer=document.getElementById('results');
var submitButton=document.getElementById('submit');
generateQuiz(myQuestions、quizContainer、ResultContainer、submitButton);
函数generateQuiz(问题、quizContainer、结果Container、submitButton){
函数showQuestions(问题,quizContainer){
//我们需要一个地方来存储输出和答案选项
var输出=[];
var答案;
//对于每个问题。。。
对于(var i=0;i您将要使用

比如说

让timeLeft=60*2//2分钟
让intervalId=setInterval(函数(){
--时间限制
让$time=document.getElementById('time'))
if(timeLeft==0){
clearInterval(有效期间)
$time.innerText='Times up!'
返回
}
让分钟数=数学楼层(timeLeft/60)
让秒=时间间隔%60
$time.innerText=`${minutes}:${seconds.toString().padStart(2,'0')}`
},1000)


您需要以下元素来显示剩余时间:

30:00
这个
async
函数:

const倒计时=async()=>{
const startTime=Date.now();
常数半小时=1000*60*30;
常数结束时间=开始时间+半小时;
const display=document.querySelector('h5');
display.innerHTML='30:00';
while(Date.now()setTimeout(resolve,1000));
const timeRemaining=endTime-Date.now();
常数分钟=~(剩余时间/(1000*60));
常数秒=数学轮(剩余时间/1000)%60;
display.innerHTML=`${minutes.toString().padStart(2,'0')}:${seconds.toString().padStart(2,'0')}`;
}
警惕(“时间到了!”);
window.open('',''self').close();
}
你可以在这里看到它:


测验
样本测试1
30:00

取得成果
var myQuestions=[
{
问题:“10/2是什么?”,
答复:{
a:‘3’,
b:‘5’,
c:'115'
},
正确答案:“b”
},
{
问题:“什么是30/3?”,
答复:{
a:‘3’,
b:‘5’,
c:'10'
},
正确答案:“c”
}
];
var quizContainer=document.getElementById('quick');
var resultcontainer=document.getElementById('results');
var submitButton=document.getElementById('submit');
generateQuiz(myQuestions、quizContainer、ResultContainer、submitButton);
函数generateQuiz(问题、quizContainer、结果Container、submitButton){
函数showQuestions(问题,quizContainer){
//我们需要一个地方来存储输出和答案选项
var输出=[];
var答案;
//对于每个问题。。。
对于(var i=0;i