JavaScript HTML DOM Window setTimeout() 方法

  • Window setTimeout() 方法

    setTimeout()方法在指定的毫秒数后调用函数或计算表达式。
    提示: 1000毫秒= 1秒。
    提示:该函数仅执行一次。如果需要重复执行,请使用setInterval()方法。
    提示:使用clearTimeout()方法可以防止函数运行。
    3秒(3000毫秒)后显示警告框:
    setTimeout(function(){ alert("Hello"); }, 3000);
    尝试一下
  • 浏览器支持

    IE/Edge Chrome FireFox Safari Opera
    方法
    setTimeout()
    4.0+
    1.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!");
    }
    尝试一下
    显示定时文本:
    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);
    尝试一下
    打开一个新窗口并在三秒钟(3000毫秒)后关闭窗口:
    var myWindow = window.open("", "", "width=200, height=100");
    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 startCount()
    function stopCount()
    尝试一下
    使用计时事件创建的时钟:
    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;
    }
    尝试一下
    将参数传递给alertFunc函数(在IE9及更早版本中不起作用):
    var myVar;
    
    function myStartFunction() {
      myVar = setTimeout(alertFunc, 2000, "First param", "Second param");
    }
    尝试一下
    但是,如果您使用匿名函数,它将适用于所有浏览器:
    var myVar;
    
    function myStartFunction() {
      myVar = setTimeout(function(){ alertFunc("First param", "Second param"); }, 2000);
    }
    尝试一下
  • 相关页面

    Window对象:clearTimeout()方法
    Window对象:setInterval()方法
    Window对象:clearInterval()方法