Comment retarder l'appel de la fonction javascript?
Je suis nouveau en 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 soit complètement chargée.
Est-il possible d'appeler pendant Page_PreRender
dans la page aspx et pas dans le code derrière, afin que je puisse retarder la fonction JavaScript ?
J'ai essayé setTimeout("function()",5000)
de résoudre le problème.
Cependant setTimeout()
semble ne pas être compatible avec certains navigateurs, par exemple: causé en boucle dans Google Chrome.
5 réponses
setTimeout
est compatible avec tous les navigateurs depuis 1996. Vous devriez éviter l'évaluation de "functionName ()" et faire à la place:
setTimeout(functionName,5000)
UPDATE: {[11] } Si vous attendez initialement une variable passée à la fonction et none dans le délai d'attente, vous devez le faire à la place:
setTimeout(function() { functionName() },5000)
Parce que setTimeout passera L'ID timeout à la fonction, si elle est appelée comme dans le premier exemple.
Cependant, vous appelez le onload
de manière incorrecte, vous devez donc faire l'un ou l'autre ce:
window.onload=function() {
// your stuff
}
Ou, puisque vous utilisez jQuery , ceci:
$(document).ready(function() {
// your stuff
});
Ou juste ceci:
$(function() {
// your stuff
});
Si vous voulez être sûr à 100% que c'est quand la page se charge réellement, utilisez:
$(window).load(function(){
//After EVERYTHING loads, including images.
})
La solution de l'autre, onload
fonctionne, mais elle se charge une fois que le DOM est prêt, mais pas lorsque la fenêtre est réellement terminée.
Si vous utilisez jQuery, il est préférable de joindre un événement à l'événement document ready en utilisant l'une des options suivantes:
$(document).ready(callback);
Ou
$(document).ready(function () { /* do stuff */ });
Ou
$(callback);
Ou
$(function () { /* do stuff */ });
$(document).ready(function(){
//Code goes here
});
Ou ancien style
<body onload="myFunction()">
Serait préférable d'utiliser un framework comme jQuery.
Dans jQuery, vous pouvez définir une fonction comme ceci:
$(document).ready(function() {
});
De cette façon, il sera appelé lorsque le DOM est complètement chargé.
Une documentation complète de la fonction ready () peut être trouvée ici .