Visit Mozilla.org

DOM:window.setTimeout

Un article de MDC.

« Référence du DOM Gecko

Sommaire

[modifier] Résumé

Exécute un morceau de code ou une fonction après un délai donné.

[modifier] Syntaxe

timeoutID = window.setTimeout(fnct, delai[, param1, param2, ...]);
timeoutID = window.setTimeout(code, delai);

  • timeoutID est l'identificateur du timeout, qui peut être utilisé avec window.clearTimeout.
  • fnct est la fonction que vous désirez exécuter après delai millisecondes.
  • code est, dans la syntaxe alternative, une chaîne contenant le code à exécuter après delai millisecondes.
  • delai est le nombre de millisecondes (millièmes de seconde) après lequel la fonction doit être appelée.

Notez que le passage de paramètres supplémentaires à la fonction dans la première syntaxe ne fonctionne pas dans Internet Explorer.

[modifier] Exemples

window.setTimeout('window.parent.generateOutput()', 1000);
function generateOutput(aConcise) {
  if(aConcise)
    parent.generateConciseOutput();
  else
    parent.generateOutput();
}
window.setTimeout(generateOutput, 1000, true);
<html>
<head>
<title>exemple de setTimeout</title>

<script type="text/javascript">
function delayedAlert()
{
  timeoutID = window.setTimeout(slowAlert, 2000);
}

function slowAlert()
{
  alert("C'était vraiment long !");
}

function clearAlert()
{
  window.clearTimeout(timeoutID);
}
</script>
</head>

<body>
<button onclick="delayedAlert();">afficher un message d'alerte après 2 secondes</button><br />
<button onclick="clearAlert();">Annuler</button>
</body>
</html>

Consultez également l'exemple de clearTimeout().


[modifier] Notes

Il est possible d'annuler le déclenchement de la fonction à l'aide de window.clearTimeout().

Si vous désirez que la fonction soit appelée de manière répétée (c'est-à-dire toutes les N millisecondes), utilisez plutôt window.setInterval().

[modifier] Le problème de « this »

Lorsqu'une méthode est passée à setTimeout() (ou n'importe quelle fonction, d'ailleurs), elle sera invoquée avec une mauvaise valeur pour this. Ce problème est expliqué en détails dans la référence JavaScript.

[modifier] Spécification

DOM Level 0. Ne fait partie d'aucune spécification.