JavaScript定时调用函数或表达式|Window setTimeout() 方法

Window 对象参考手册


定义与用法

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

提示:


语法格式

setTimeout(code, milliseconds, param1, param2, …)

或者

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


示例代码

3 秒(3000 毫秒)后弹出 “Hello” :

setTimeout(function(){ alert("Hello"); }, 3000);

亲自试试


浏览器支持

方法Google ChromeInternet ExplorerFirefoxSafariOpera
setTimeout()1.04.01.01.04.0

表格中的数字表示支持该属性的第一个浏览器版本号。


参数说明

参数描述
code/function必需。要调用一个代码串,也可以是一个函数。
milliseconds可选。执行或调用 code/function 需要等待的时间,以毫秒计。默认为 0。
param1, param2, …可选。 传给执行函数的其他参数(IE9 及其更早版本不支持该参数)。

技术细节

返回值:返回一个 ID(数字),可以将这个ID传递给 clearTimeout() 来取消执行。

更多示例

3 秒(3000 毫秒)后弹出 “Hello” :

var myVar;
 
function myFunction() {
    myVar = setTimeout(alertFunc, 3000);
}
 
function alertFunc() {
    alert("Hello!");
}

亲自试试


在第 2、4、6 秒修改输入框中的文本:

var x = document.getElementById("txt");
setTimeout(function(){ x.value = "2 秒" }, 2000);
setTimeout(function(){ x.value = "4 秒" }, 4000);
setTimeout(function(){ x.value = "6 秒" }, 6000);

亲自试试


打开一个新窗口,3 秒后将该窗口关闭:

var myWindow = window.open("", "", "width=200, height=100");
myWindow.document.write("<p>这是一个新窗口'</p>");
setTimeout(function(){ myWindow.close() }, 3000);

亲自试试


使用 clearTimeout() 来阻止函数的执行:

var myVar;
 
function myFunction() {
    myVar = setTimeout(function(){ alert("Hello") }, 3000);
}
 
function myStopFunction() {
    clearTimeout(myVar);
}

亲自试试


计数器 — 可以通过点击按钮停止:

function startCount();
function stopCount();

亲自试试


显示当前时间:

function startTime() {
    var today = new Date();
    var h = today.getHours();
    var m = today.getMinutes();
    var s = today.getSeconds();
    // 在 numbers<10 的数字前加上 0
    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, "Runoon", "Google");
}

亲自试试

但是,如果使用匿名函数,则所有浏览器都支持:

var myVar;
 
function myStartFunction() {
    myVar = setTimeout(function(){ alertFunc("Runoon", "Google"); }, 2000);
}

亲自试试


相关页面

Window 对象: setInterval() 方法

Window 对象: setTimeout() 方法

Window 对象: clearTimeout() 方法


Window 对象参考手册


相关