Window setTimeout() 方法

实例

3 秒钟后显示警告消息框 (3000 毫秒):

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p>单击按钮等待 3 秒钟,然后弹出 "你好"。</p>
  5. <button onclick="myFunction()">试一试</button>
  6. <script>
  7. function myFunction() {
  8. setTimeout(function(){ alert("Hello"); }, 3000);
  9. }
  10. </script>
  11. </body>
  12. </html>

定义与用法

setTimeout() 方法在指定的毫秒数后调用函数或计算表达式。

提示:1000 毫秒 = 1 秒。

提示:该函数只执行一次。如果需要重复执行,请使用 setInterval() 方法。

提示:使用 clearTimeout() 方法阻止函数运行。


浏览器支持

表中的数字指定完全支持该方法的第一个浏览器版本。

方法
setTimeout()1.04.01.01.04.0

语法

  1. setTimeout(function, milliseconds, param1, param2, ...)

参数值

参数描述
function必填。将要执行的函数
milliseconds可选。 执行代码前等待的毫秒数。如果省略,则使用值 0
param1, param2, …可选。 function 函数的附加参数 (IE9 及更早版本不支持)

技术细节

返回值:一个数字,表示设置的计时器的 ID 值。将此值与 clearTimeout() 方法一起使用可取消计时器

更多实例

实例

您还可以引用 "named" 函数;每 3 秒(3000 毫秒)弹出 "Hello":

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p>单击按钮等待 3 秒钟,然后弹出 "Hello"。</p>
  5. <button onclick="myFunction()">试一试</button>
  6. <script>
  7. var myVar;
  8. function myFunction() {
  9. myVar = setTimeout(alertFunc, 3000);
  10. }
  11. function alertFunc() {
  12. alert("Hello!");
  13. }
  14. </script>
  15. </body>
  16. </html>
实例

显示定时文本:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p>点击下面的按钮。输入字段将告诉您何时经过 2 秒、4 秒和 6 秒。</p>
  5. <button onclick="timedText()">显示定时文本</button>
  6. <input type="text" id="txt">
  7. <script>
  8. function timedText() {
  9. var x = document.getElementById("txt");
  10. setTimeout(function(){ x.value="2 seconds" }, 2000);
  11. setTimeout(function(){ x.value="4 seconds" }, 4000);
  12. setTimeout(function(){ x.value="6 seconds" }, 6000);
  13. }
  14. </script>
  15. </body>
  16. </html>
实例

打开一个新窗口,并在 3 秒(3000 毫秒)后关闭该窗口:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p>单击按钮打开一个新窗口,并在 3 秒(3000 毫秒)后关闭该窗口</p>
  5. <button onclick="openWin()">打开 "myWindow"</button>
  6. <script>
  7. function openWin() {
  8. var myWindow = window.open("", "myWindow", "width=200, height=100");
  9. myWindow.document.write("<p>这是 'myWindow'</p>");
  10. setTimeout(function(){ myWindow.close() }, 3000);
  11. }
  12. </script>
  13. </body>
  14. </html>
实例

使用 clearTimeout() 防止函数执行:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p>等待3秒钟后,单击第一个按钮弹出 "Hello"。</p>
  5. <p>单击第二个按钮以阻止执行第一个函数。(您必须在 3 秒钟结束前单击它。)</p>
  6. <button onclick="myFunction()">试一试</button>
  7. <button onclick="myStopFunction()">停止弹出</button>
  8. <script>
  9. var myVar;
  10. function myFunction() {
  11. myVar = setTimeout(function(){ alert("Hello") }, 3000);
  12. }
  13. function myStopFunction() {
  14. clearTimeout(myVar);
  15. }
  16. </script>
  17. </body>
  18. </html>
实例

永远计数 - 但也可以停止计数:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <button onclick="startCount()">开始计数!</button>
  5. <input type="text" id="txt">
  6. <button onclick="stopCount()">停止计数!</button>
  7. <p>
  8. 点击 "开始计数!" 按上面的按钮启动计时器。输入字段将永远计数,从 0 开始。点击 "停止计数!" 的按钮停止计数。点击 "开始计数!" 按钮再次启动计数。
  9. </p>
  10. <script>
  11. var c = 0;
  12. var t;
  13. var timer_is_on = 0;
  14. function timedCount() {
  15. document.getElementById("txt").value = c;
  16. c = c + 1;
  17. t = setTimeout(timedCount, 1000);
  18. }
  19. function startCount() {
  20. if (!timer_is_on) {
  21. timer_is_on = 1;
  22. timedCount();
  23. }
  24. }
  25. function stopCount() {
  26. clearTimeout(t);
  27. timer_is_on = 0;
  28. }
  29. </script>
  30. </body>
  31. </html>
实例

用计时事件创建时钟:

  1. <!DOCTYPE html>
  2. <html>
  3. <body onload="startTime()">
  4. <div id="txt"></div>
  5. <script>
  6. function startTime() {
  7. var today = new Date();
  8. var h = today.getHours();
  9. var m = today.getMinutes();
  10. var s = today.getSeconds();
  11. // add a zero in front of numbers<10
  12. m = checkTime(m);
  13. s = checkTime(s);
  14. document.getElementById("txt").innerHTML = h + ":" + m + ":" + s;
  15. var t = setTimeout(function(){ startTime() }, 500);
  16. }
  17. function checkTime(i) {
  18. if (i < 10) {
  19. i = "0" + i;
  20. }
  21. return i;
  22. }
  23. </script>
  24. </body>
  25. </html>
实例

将参数传递给 alertFunc 函数(在 IE9 及更早版本中不起作用):

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p>2 秒后点击开始按钮输出 "Hello"。</p>
  5. <p>在本例中,我们还输出了传递给 alertFunc() 函数的参数(在 IE9 和更早版本中不起作用)。</p>
  6. <button onclick="myStartFunction()">开始</button>
  7. <p id="demo">
  8. <p id="demo2" style="color:red;">
  9. <script>
  10. var myVar;
  11. function myStartFunction() {
  12. myVar = setTimeout(alertFunc, 2000, "First parameter", "Second parameter");
  13. }
  14. function alertFunc(param1, param2) {
  15. document.getElementById("demo").innerHTML += "Hello ";
  16. document.getElementById("demo2").innerHTML = "参数传递到 to alertFunc(): <br>"
  17. + param1 + "<br>" + param2 + "<br>";
  18. }
  19. </script>
  20. </body>
  21. </html>

但是,如果使用匿名函数,它将在所有浏览器中都有效:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p>2 秒后点击开始按钮输出 "Hello"。</p>
  5. <p>在本例中,我们还输出传递给 alertFunc() 函数的参数。</p>
  6. <button onclick="myStartFunction()">开始</button>
  7. <p id="demo">
  8. <p id="demo2" style="color:red;">
  9. <script>
  10. var myVar;
  11. function myStartFunction() {
  12. myVar = setTimeout(function(){ alertFunc("First parameter", "Second parameter"); }, 2000);
  13. }
  14. function alertFunc(param1, param2) {
  15. document.getElementById("demo").innerHTML += "Hello ";
  16. document.getElementById("demo2").innerHTML = "参数传递到 alertFunc(): <br>"
  17. + param1 + "<br>" + param2 + "<br>";
  18. }
  19. </script>
  20. </body>
  21. </html>

相关页面

Window 对象: clearInterval() 方法

Window 对象: setInterval() 方法

Window 对象: clearTimeout() 方法

分类导航