[résolu] problème avec getElementById et onload ...

problème avec getElementById et onload ... [résolu] - HTML/CSS - Programmation

Marsh Posté le 28-01-2010 à 21:41:12    

Salut et merci d'avance pour votre aide futur.
 
Je souhaite lancer grâce à window.onload une fonction d'initialisation (je sais, c'est banal)
Dans ma fonction ( init(...) ) je fais appel à document.getElementById or mon debbuger me dis que le résultat est null.
Il semble que ce soit parce que l'élément cherché n'est pas encore chargé... mais alors, comment récupérer l'info ?
Je précise que mon script est dans un fichier.js. Voici le bout qui pose problème :

Code :
  1. dataDI = new Array();
  2. function init(idArray) {
  3. for(i=0;i<idArray.length;i++){
  4.  obj = document.getElementById(idArray[i]);
  5.  dataDI[idArray[i]] = new Array(obj.offsetWidth,15,null);
  6. }
  7. for(var key in dataDI)
  8.  slideDown(key,1);
  9. }
  10. window.onload = init(["home","mail"]);


Message édité par jamestout le 28-01-2010 à 22:15:29
Reply

Marsh Posté le 28-01-2010 à 21:41:12   

Reply

Marsh Posté le 28-01-2010 à 22:02:18    

Code :
  1. window.onload = init(["home","mail"]);
 

C'est simple sans l'être.
Explications :
 - window.onload est de type function
 - init est de type function
 - init(["home","mail"]); est l'exécution de la fonction, elle ne retourne rien donc c'est de type void dirons nous.

 

En clair tu essaye d'affecter void à une variable de type function, ça colle pas (ou plutôt, ça ne fait rien).

 
Code :
  1. window.onload = init;


Avec le code ci-dessus, on affecte à window.onload une fonction qui remplace l'ancienne et qui sera donc lancée au chargement de la page.


Message édité par Bidem le 28-01-2010 à 22:03:18
Reply

Marsh Posté le 28-01-2010 à 22:14:45    

ok
merci pour cette réponse rapide.
 
donc j'imagine que pour passer des arguments a ma fonction, je dois faire un truc du genre :

Code :
  1. window.onload = function () { init(["home","mail"]); }


dans ce cas, je passe en [résolu] !
 
tu me sauves mes neurones  :love:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed