为什么我的浏览器中没有显示警报?

问题描述 投票:0回答:2

我已经为东京2020奥运会的倒计时时钟创建了一个代码,我希望结果出现在警报中,但我似乎无法让它出现。有人可以帮我解决这个问题吗?

    <script>
    // Set the date we're counting down to
    var countDownDate = new Date("July 24, 2020 00:00:00").getTime();

    // Update the count down every 1 second
    var x = setInterval(function() {

        // Get todays date and time
        var now = new Date().getTime();

        // Find the distance between now and the count down date
        var distance = countDownDate - now;

        // Time calculations for days, hours, minutes and seconds
        var days = Math.floor(distance / (1000 * 60 * 60 * 24));
        var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
        var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
        var seconds = Math.floor((distance % (1000 * 60)) / 1000);

        // Display the result in the element with id="demo"
        document.getElementById("demo").innerHTML = days + "d " + hours + "h " + minutes + "m " + seconds + "s ";

        // If the count down is finished, write some text 
        if (distance < 0) {
        clearInterval(x);
        document.getElementById("demo").innerHTML = "EXPIRED";
        }
        }, 1000);

        //alerting the clock
        alert(days + hours + minutes + seconds);
javascript html alert clock
2个回答
2
投票

如果将其置于区间函数之外,则只需调用一次警报:

// Set the date we're counting down to
var countDownDate = new Date("July 24, 2020 00:00:00").getTime();

// Update the count down every 1 second
var x = setInterval(function() {

  // Get todays date and time
  var now = new Date().getTime();

  // Find the distance between now and the count down date
  var distance = countDownDate - now;

  // Time calculations for days, hours, minutes and seconds
  var days = Math.floor(distance / (1000 * 60 * 60 * 24));
  var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
  var seconds = Math.floor((distance % (1000 * 60)) / 1000);

  // Display the result in the element with id="demo"
  document.getElementById("demo").innerHTML = days + "d " + hours + "h " + minutes + "m " + seconds + "s ";

  // If the count down is finished, write some text 
  if (distance < 0) {
    clearInterval(x);
    document.getElementById("demo").innerHTML = "EXPIRED";
  }

  alert(`${days} days, ${hours} hours, ${minutes} minutes,  ${seconds} seconds until the Tokyo 2020 Olympics`); // this jquery notation makes it easier to write strings depending on variables
  //alert(days + " days, " + hours + " hours, " +  minutes + " minutes, " + seconds + " seconds, until the Tokyo 2020 Olympics");
}, 10000);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p id="demo"></p>

0
投票

如果你想重复它,你需要将警报放在区间函数内(我已经修改了下面的代码来显示你想要的基本要素):

var countDownDate = new Date("July 24, 2020 00:00:00").getTime();

var x = setInterval(function() {
  var now = new Date().getTime();
  var distance = countDownDate - now;
  var days = Math.floor(distance / (1000 * 60 * 60 * 24));
  var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
  var seconds = Math.floor((distance % (1000 * 60)) / 1000);
  if (distance < 0) {
    clearInterval(x);
  }
  alert(`${days}${hours}${minutes}${seconds}`);
}, 1000);
© www.soinside.com 2019 - 2024. All rights reserved.