我正试图为我的网站做一个倒计时计时器,我做了所有的编码,但计时器不出现.我是用dreamweaver做的

I am trying to make a countdown timer for my website and I have all the coding done, but the timer does not show up. Im doing it in dreamweaver

本文关键字:计时器 编码 做的 dreamweaver 网站 我的 倒计时 一个      更新时间:2023-09-26

这是我的HTML代码,我用这个网站来帮助我做代码,但我仍然不能得到代码的工作。这是我的个人网站,我正在为我和我的朋友。http://forum.codecall.net/topic/51639-how-to-create-a-countdown-timer-in-javascript/

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>final proj</title>
<script type="text/javascript" src="Timer.js" />
</head>
<body>
<div id='timer' />
<script type="text/javascript">window.onload = CreateTimer("timer",30);
</script>
<body>
<div id='timer' />
<script type="text/javascript">window.onload = CreateTimer("timer",30);
</script>
</body>
</html>

这是我的javascript代码

var Timer;
var TotalSeconds;
function CreateTimer(TimerID, Time) {
"use strict";
Timer = document.getElementById(TimerID);
TotalSeconds = Time;
UpdateTimer();
window.setTimeout("Tick()", 1000);  
}
function Tick() {
"use strict";
if (TotalSeconds <=0) {
    alert("Times UP!");
    return;
}
TotalSeconds -= 1;
UpdateTimer();
window.setTimeout("Tick(), 1000");
}
function UpdateTimer() {
"use strict";
var Seconds = TotalSeconds;
var Days = Math.floor(Seconds / 86400);
Seconds -= Days * (86400);
var Hours = Math.floor(Seconds / 3600);
Seconds -= Hours * (3600);
var Minutes = Math.floor(Seconds / 60);
Seconds -= Minutes * (60);
var TimeStr = ((Days > 0)) ? Days + "days ": "") + LeadingZero(Hours) + ":"                     + LeadingZero(Minutes) + ":" + LeadingZero(Seconds)
Timer.innerHTML = TimeStr;
}
function LeadingZero(Time) {
"use strict";
return (Time < 10) ? "0" + Time : + Time;
} 

我都不能让它出现,更别说倒计时了。我试图让它显示多少天,小时,分钟,直到一个日期。

我认为这是因为在您的代码中有一个不需要的右括号:var TimeStr = ((Days)) ...,这会抛出错误,因此没有任何工作

此外,您的setTimeout呼叫有问题,如@taxicala所述。

看一下下面的工作代码片段:

var Timer;
var TotalSeconds;
function CreateTimer(TimerID, Time) {
  Timer = document.getElementById(TimerID);
  TotalSeconds = Time;
  UpdateTimer();
  window.setTimeout(Tick, 1000);
}
function Tick() {
  if (TotalSeconds <= 0) {
    alert("Times UP!");
    return;
  }
  TotalSeconds -= 1;
  UpdateTimer();
  window.setTimeout(Tick, 1000);
}
function UpdateTimer() {
  var Seconds = TotalSeconds;
  var Days = Math.floor(Seconds / 86400);
  Seconds -= Days * 86400;
  var Hours = Math.floor(Seconds / 3600);
  Seconds -= Hours * 3600;
  var Minutes = Math.floor(Seconds / 60);
  Seconds -= Minutes * 60;
  var TimeStr = Days > 0 ? Days + "days " : "" + LeadingZero(Hours) + ":" + LeadingZero(Minutes) + ":" + LeadingZero(Seconds);
  Timer.innerHTML = TimeStr;
}
function LeadingZero(Time) {
  return (Time < 10) ? "0" + Time : +Time;
}
CreateTimer('timer', 5);
<div id="timer" />

setTimeout接收对函数或匿名函数的引用作为第一个参数,并接收一个整数,其中包含所需的毫秒数,之后该函数应从事件循环中执行,作为第二个参数。

:

window.setTimeout("Tick(), 1000");
应:

window.setTimeout(Tick, 1000);

传递的是字符串,而不是两个必需的形参。

但是,您可以传递一个字符串作为第一个参数,看起来像这样:
window.setTimeout("Tick()", 1000);