目录

window setTimeout()

示例

等待 5 秒问候语:

const myTimeout = setTimeout(myGreeting, 5000);
亲自试一试 »

使用clearTimeout(myTimeout) 阻止 myGreeting 运行:

const myTimeout = setTimeout(myGreeting, 5000);

function myStopFunction() {
  clearTimeout(myTimeout);
}
亲自试一试 »

下面有更多示例。


描述

这个setTimeout()方法在几毫秒后调用函数。

1 秒 = 1000 毫秒。

笔记

这个setTimeout()仅执行一次。

如果需要重复执行,请使用setInterval()反而。

使用clearTimeout()方法来阻止该功能启动。

要清除超时,请使用ID从 setTimeout() 返回:

myTimeout = setTimeout( function, milliseconds);

然后你可以通过调用clearTimeout()来停止执行:

clearTimeout(myTimeout);

也可以看看:

clearTimeout() 方法

setInterval() 方法

clearInterval() 方法


语法

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

参数

Parameter Description
function Required.
The function to execute.
milliseconds Optional.
Number of milliseconds to wait before executing.
Default value is 0.
param1,
param2,
...
Optional.
Parameters to pass to the function.
Not supported in IE9 and earlier.

返回值

类型 描述
一个号码 定时器的id。
将此 id 与clearTimeout(id) 一起使用来取消计时器。


更多示例

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

let timeout;

function myFunction() {
  timeout = setTimeout(alertFunc, 3000);
}

function alertFunc() {
  alert("Hello!");
}
亲自试一试 »

显示定时文本:

let x = document.getElementById("txt");
setTimeout(function(){ x.value = "2 seconds" }, 2000);
setTimeout(function(){ x.value = "4 seconds" }, 4000);
setTimeout(function(){ x.value = "6 seconds" }, 6000);
亲自试一试 »

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

const myWindow = window.open("", "", "width=200, height=100");
setTimeout(function() {myWindow.close()}, 3000);
亲自试一试 »

永远计数 - 但能够停止计数:

function startCount()
function stopCount()
亲自试一试 »

使用计时事件创建的时钟:

function startTime() {
  const date = new Date();
  document.getElementById("txt").innerHTML = date.toLocaleTimeString();
  setTimeout(function() {startTime()}, 1000);
}
亲自试一试 »

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

setTimeout(myFunc, 2000, "param1", "param2");
亲自试一试 »

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

setTimeout(function() {myFunc("param1", "param2")}, 2000);
亲自试一试 »

浏览器支持

setTimeout()所有浏览器都支持:

Chrome Edge Firefox Safari Opera IE
Yes Yes Yes Yes Yes Yes