JavaScript prompt() 在呈现内容之前触发

JavaScript prompt() firing before content is rendered

这是我第一次使用 prompt()。我已经按照老师给的规范完成了作业,但是我真的很生气提示()在后台内容被调用之前被调用(我什至使用window.onload = function() {blah};但它仍然在内容之前被调用显示。

页面的link是http://homepage.cs.uiowa.edu/~csoultz/然后点击lab4

这不是一个大问题,更多的是我的好奇心。在过去的几个小时里,我一直在研究它,但一无所获。我不想再加载库,如果没有库就不可能,请告诉我。预先感谢您的帮助

这是代码

<!DOCTYPE html>

<html>
<head>
  <meta charset="utf-8">
  <title>Work Week Calculator</title>
  <link rel="stylesheet" href="mySite.css">

<script>
function askquestion(question,answer){
  var userAnswer = prompt(question.toString());
  if(userAnswer!=null) return userAnswer.toLowerCase()===answer.toLowerCase();
};
</script>

</head>

<body>
  <h1>A Simple Quiz</h1>
  <p><output id="result"></output></p>
  <script>
  window.onload = function() {
    var trivia=[["Which is the most widely spoken language in the world?","Mandarin"],
                ["The art of paper folding is known as what?","Origami"],
                ["Bubble tea originated in which country?","Taiwan"]
              ];
    var correct=0;
    var total=trivia.length;
    for(i=0;i<trivia.length;i++){
      if(askquestion(trivia[i][0],trivia[i][1])){
        alert("Correct!");
        correct++;
      }
      else{
        alert("Sorry. The correct answer is "+trivia[i][1].toString());
      }
    }
    var resultElement = document.getElementById("result");
    resultElement.innerHTML = "You got "+correct.toString()+" out of "+total.toString()+" questions correct";
  };
  </script>
</body>
</html>

我能够将我的函数包装在超时值为 10 的 setTimeout 中,该问题已在 chrome 中修复。

window.onload = setTimeout(function() {
                                       //Do Stuff Here
                           },10);