English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Método Window setTimeout()

Objeto Window de JavaScript

setTimeout()método, una vez que el temporizador finaliza, el temporizador llamará a la función o ejecutará un segmento de código.

Este método devuelve un ID de identificación único del temporizador de espera, por lo que puede configurar un temporizador utilizandoclearTimeout()para eliminarlo.

UtiliceclearTimeout()método para evitar que la función se ejecute.

Esta función se ejecuta solo una vez. Si necesita ejecutarse repetidamente, utilicesetInterval()Método.

Sintaxis:

window.setTimeout(function, delay, param1, param2, ...)
setTimeout(function() { alert("Hello World"); }, 2000);
Prueba aquí‹/›

Compatibilidad del navegador

Los números en la tabla especifican la primera versión del navegador que completamente admite el método setTimeout():

方法
setTimeout()11414

参数值

参数描述
function(必需)计时器到期后要执行的函数
delay(必需)计时器应等待的时间(以毫秒为单位)(1000毫秒= 1秒),然后执行指定的函数或代码。如果省略,则使用值0
param1, param2, ...(可选)传递给该函数(function)的其他参数 (IE9和更早版本中不支持)

技术细节

返回值:一个数字,表示设置的计时器的超时ID值。将此值与clearTimeout()方法一起使用可取消计时器

更多实例

此示例引用外部“命名”函数:

var timeoutID;
function myFunc() {
  timeoutID = setTimeout(myCallback, 2000);
}
function myCallback() {
  alert("Hello World");
}
Prueba aquí‹/›

使用clearTimeout()阻止函数运行:

var timeoutID;
function myFunc() {
  timeoutID = setTimeout(myCallback, 2000);
}
function myCallback() {
  alert("Hello World");
}
function myStopFunc() {
   clearTimeout(timeoutID);
}
Prueba aquí‹/›

使用递归显示当前时间(就像数字手表一样,每1每秒钟执行一次“ startTimer()”函数):

window.addEventListener("load", startTimer);
function startTimer() {
   var date = new Date();
   var x = document.getElementById("result");
   x.innerHTML = date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
   setTimeout(startTimer, 1000);   // Recursión 
}
Prueba aquí‹/›

使用setTimeout()创建动态进度条:

var i = 0;
var bar = document.getElementById("progress",-bar);
var t;
function start() {
  if(i < 100) {
 i++;
 bar.style.width = i + "%";
 bar.innerHTML = i + " % ";
 t = setTimeout(start, 60);  // Recursión
  }
}
function stop() {
  clearTimeout(t);
}
Prueba aquí‹/›

Haga clic en el botón "Iniciar cuenta" para iniciar el temporizador. Haga clic en el botón "Detener cuenta" para detener la cuenta:

0
Prueba aquí

Pase parámetros a la función myFunc (en IE9y no funciona en versiones anteriores):

var timeoutID = setTimeout(myFunc, 2000, "First", "Second", "Third");
Prueba aquí‹/›

Pero, si usa una función anónima, se ejecutará en todos los navegadores:

var timeoutID = setTimeout(function() { myFunc("First", "Second", "Third"); }, 2000);
Prueba aquí‹/›

Referencias relacionadas

Referencia de ventana (Window):Método clearTimeout()

Referencia de ventana (Window):Método setInterval()

Referencia de ventana (Window):Método clearInterval()

Objeto Window de JavaScript