Window setTimeout() 方法
定义和用法
setTimeout()
方法在若干毫秒后调用函数。
注释:1 秒 = 1000 毫秒。
提示
setTimeout()
只执行一次。
如果您需要重复执行,请改用 setInterval()
。
请使用 clearTimeout() 方法 来阻止函数启动。
如需清除超时,请使用从 setTimeout()
返回的 id:
myTimeout = setTimeout(function, milliseconds);
然后你可以通过调用 clearTimeout() 方法 来停止执行:
clearTimeout(myTimeout);
另请参阅:
实例
例子 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);