Window setTimeout() 方法
页面下方有更多实例。
定义和用法
setTimeout() 方法在指定的毫秒数后调用函数或计算表达式。
提示: 1000毫秒 = 1秒。
提示: 该函数只执行一次。如果需要重复执行,请使用 setInterval() 方法。
提示: 使用 clearTimeout() 方法阻止函数运行。
浏览器支持
表中的数字表示支持该方法的第一个浏览器版本。
方法 | |||||
---|---|---|---|---|---|
setTimeout() | 1.0 | 4.0 | 1.0 | 1.0 | 4.0 |
语法
setTimeout(function, milliseconds, param1, param2, ...)
参数值
参数 | 描述 |
---|---|
function | 必需。将要执行的函数 |
milliseconds | 可选。执行代码前等待的毫秒数。如果省略,则使用值0 |
param1, param2, ... | 可选。传递给函数的其他参数(IE9及更早版本不支持) |
技术细节
返回值: | 一个数值,表示设置的计时器的ID值。将此值与 clearTimeout() 方法一起使用可取消计时器 |
---|
更多实例
实例
您还可以引用"命名"函数;3秒(3000毫秒)后显示警报框:
var myVar;
function myFunction() {
myVar = setTimeout(alertFunc, 3000);
}
function alertFunc() {
alert("Hello!");
}
亲自试一试 »
function myFunction() {
myVar = setTimeout(alertFunc, 3000);
}
function alertFunc() {
alert("Hello!");
}
实例
显示定时文本:
var 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);
亲自试一试 »
setTimeout(function(){ x.value = "2 seconds" }, 2000);
setTimeout(function(){ x.value = "4 seconds" }, 4000);
setTimeout(function(){ x.value = "6 seconds" }, 6000);
实例
打开一个新窗口,并在三秒(3000毫秒)后关闭该窗口:
var myWindow = window.open("", "", "width=200, height=100");
myWindow.document.write("<p>This is 'myWindow'</p>");
setTimeout(function(){ myWindow.close() }, 3000);
亲自试一试 »
myWindow.document.write("<p>This is 'myWindow'</p>");
setTimeout(function(){ myWindow.close() }, 3000);
实例
使用 clearTimeout() 阻止函数运行:
var myVar;
function myFunction() {
myVar = setTimeout(function(){ alert("Hello") }, 3000);
}
function myStopFunction() {
clearTimeout(myVar);
}
亲自试一试 »
function myFunction() {
myVar = setTimeout(function(){ alert("Hello") }, 3000);
}
function myStopFunction() {
clearTimeout(myVar);
}
实例
用计时事件创建的时钟:
function startTime() {
var today = new Date();
var h = today.getHours();
var m = today.getMinutes();
var s = today.getSeconds();
// add a zero in front of numbers<10
m = checkTime(m);
s = checkTime(s);
document.getElementById("txt").innerHTML = h+ ":" + m + ":" + s;
t = setTimeout(function(){ startTime() }, 500);
}
function checkTime(i) {
if (i<10) {
i = "0" + i;
}
return i;
}
亲自试一试 »
var today = new Date();
var h = today.getHours();
var m = today.getMinutes();
var s = today.getSeconds();
// add a zero in front of numbers<10
m = checkTime(m);
s = checkTime(s);
document.getElementById("txt").innerHTML = h+ ":" + m + ":" + s;
t = setTimeout(function(){ startTime() }, 500);
}
function checkTime(i) {
if (i<10) {
i = "0" + i;
}
return i;
}
实例
将参数传递给 alertFunc 函数(在IE9及更早版本中不起作用):
var myVar;
function myStartFunction() {
myVar = setTimeout(alertFunc, 2000, "First param", "Second param");
}
亲自试一试 »
function myStartFunction() {
myVar = setTimeout(alertFunc, 2000, "First param", "Second param");
}
但是,如果使用匿名函数,它将适用于所有浏览器:
var myVar;
function myStartFunction() {
myVar = setTimeout(function(){ alertFunc("First param", "Second param"); }, 2000);
}
亲自试一试 »
function myStartFunction() {
myVar = setTimeout(function(){ alertFunc("First param", "Second param"); }, 2000);
}
相关页面
Window 对象: clearTimeout() 方法
Window 对象: setInterval() 方法
Window 对象: clearInterval() 方法
❮ Window 对象