web-dev-qa-db-fra.com

Comment retarder l'appel de la fonction javascript?

Je suis nouveau sur JavaScript.

Je voudrais appeler la fonction JavaScript/jQuery après le chargement de la page dans la page aspx.

J'ai essayé d'utiliser <form onload="function()"> et window.load = function(){}, mais le JavaScript est toujours déclenché avant qu'une partie du contenu ne soit complètement chargée. 

Est-il possible d'appeler pendant Page_PreRender dans une page aspx et non dans un code derrière, afin que je puisse retarder la fonction JavaScript?

J'ai essayé setTimeout("function()",5000) pour résoudre le problème.

Cependant, setTimeout() semble ne pas être compatible avec certains navigateurs, par exemple: la création de boucles dans Google Chrome.

29
sams5817

setTimeout est compatible avec tous les navigateurs depuis 1996. Vous devriez éviter l'évaluation de "functionName ()" et faire plutôt:

setTimeout(functionName,5000)

UPDATE: Si vous attendez initialement une variable transmise à la fonction et aucune pendant le délai d'attente, procédez comme suit:

setTimeout(function() { functionName() },5000)

car setTimeout transmettra l'ID de délai d'attente à la fonction, si elle est appelée comme dans le premier exemple.

Cependant, vous appelez la onload de manière incorrecte, vous devez donc procéder de l'une des manières suivantes:

window.onload=function() {
  // your stuff
}

ou, puisque vous utilisez jQuery , ceci:

$(document).ready(function() {
    // your stuff
});

ou juste ceci:

$(function() {
    // your stuff
});
70
mplungjan

Si vous voulez être sûr à 100% que c'est lors du chargement ACTUEL de la page, utilisez:

$(window).load(function(){
   //After EVERYTHING loads, including images.
})

La solution de l'autre, onload, fonctionne, mais elle se charge lorsque le DOM est prêt, mais pas lorsque le chargement de la fenêtre est terminé.

5
Oscar Godson

Si vous envisagez d'utiliser jQuery, il est préférable d'attacher un événement à l'événement prêt pour le document à l'aide de l'un des éléments suivants:

$(document).ready(callback);

ou

$(document).ready(function () { /* do stuff */ });

ou

$(callback);

ou

$(function () { /* do stuff */ });
3
Ken Browning
$(document).ready(function(){ 

   //Code goes here

});

ou à l'ancienne

<body onload="myFunction()">
1
MadBender

Il serait préférable d'utiliser un cadre tel que jQuery .
Dans jQuery, vous pouvez définir une fonction comme celle-ci:

$(document).ready(function() {

});

De cette façon, il sera appelé lorsque le DOM sera complètement chargé.

Une documentation complète de la fonction ready () peut être trouvée ici .

0
Karsten