Window setTimeout() 方法

定义和用法

setTimeout() 方法在若干毫秒后调用函数。

注释:1 秒 = 1000 毫秒。

提示

setTimeout() 只执行一次。

如果您需要重复执行,请改用 setInterval()

请使用 clearTimeout() 方法 来阻止函数启动。

如需清除超时,请使用从 setTimeout() 返回的 id:

myTimeout = setTimeout(function, milliseconds);

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

clearTimeout(myTimeout);

另请参阅:

clearTimeout() 方法

setInterval() 方法

clearInterval() 方法

实例

例子 1

等待 5 秒钟的问候语:

const myTimeout = setTimeout(myGreeting, 5000);

亲自试一试

例子 2

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

const myTimeout = setTimeout(myGreeting, 5000);

function myStopFunction() {
  clearTimeout(myTimeout);
}

亲自试一试

页面下方提供更多实例。

语法

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

参数

参数 描述
function 必需。要执行的函数。
milliseconds

可选。执行前等待的毫秒数。

默认值为 0。

param1, param2,...

可选。传递给函数的参数。

IE9 及更早版本不支持。

返回值

类型 描述
数字。

计时器的 ID。

请将此 id 与 clearTimeout(id) 方法 一起使用以取消计时器。

浏览器支持

所有浏览器都支持 setTimeout()

Chrome IE Edge Firefox Safari Opera
Chrome IE Edge Firefox Safari Opera
支持 支持 支持 支持 支持 支持

更多实例

例子 3

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

let timeout;

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

function alertFunc() {
  alert("Hello!");
}

亲自试一试

例子 4

显示定时文本:

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);

亲自试一试

例子 5

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

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

亲自试一试

例子 6

持续计数 - 但可以停止计数:

function startCount()
function stopCount()

亲自试一试

例子 7

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

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

亲自试一试

例子 8

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

setTimeout(myFunc, 2000, "param1", "param2");

亲自试一试

例子 9

但是,如果您使用匿名函数,将适用于所有浏览器:

setTimeout(function() {myFunc("param1", "param2")}, 2000);

亲自试一试