Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1746 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [HTML/CSS/Javascript] conflit body onload / window.onload

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[HTML/CSS/Javascript] conflit body onload / window.onload

n°1572373
nabbo
Posté le 08-06-2007 à 15:19:43  profilanswer
 

Bonjour
 
je bute actuellement sur un problème de javascript.
 
j'ai un fichier HTML qui est crée par ASP compilé dont je n'ai pas les sources.
je ne peux donc pas toucher à ce fichier HTML.
 
je souhaite cependant modifier le contenu de cette page, je choisis donc le seul point d'entrée que j'ai : javascript.
 
en effet, le fichier html fait appel à un fichier javascript dont j'ai les sources.
ce fichier javascript est appelé au début du fichier HTML, avant le BODY, donc avant un quelconque contenu.
je ne peux donc pas modifier le contenu au moment exact de l'appel à javascript, puisque à ce moment là, le fichier html est vide.
 
j'ai donc essayé de faire éxecuter le javascript après le chargement, grâce à window.onload.
 
Le problème, c'est que le fichier html inclue un body onload="blablabla" qui d'une part m'est inaccessible, et d'autre part est variable.
 
ci dessous un résumé en code de mon problème :  
 
fichier html que je ne peux pas modifier :

Code :
  1. <html>
  2. <head>
  3. <script type="text/javascript" src="./simple.js"></script>
  4. </head>
  5. <body onload="alert('truc');">
  6. <h1>test</h1>
  7. <p id="toto">paragraphe original</p>
  8. <p>Un deuxième paragraphe</p>
  9. </body>
  10. </html>


 
ci-dessous le fichier "simple.js" que je peux modifier :

Code :
  1. function replacetext()
  2. {
  3. document.getElementById('toto').firstChild.data="nouveau paragraphe";
  4. }
  5. window.onload=replacetext;


 
le problème est le suivant : le window.onload du fichier javascript n'est pas éxécuté, à cause du body.onload (que je ne peux pas modifier ni enlever)
 
la seule parade que j'ai trouvé jusqu'à présent est de faire :  

Code :
  1. window.setTimeout("replacetext",1000);


 
qui marche, mais qui n'est pas très propre et très peu adapté, dans la mesure où ma page peut être longue à charger.
 
toutes les solutions que j'ai trouvées sur internet disent de modifier le body onload, ce que je ne peux pas.
 
est-ce que quelqu'un a déjà rencontré ce problème ou peut m'aider ?
 
 
merci
 
:jap:


Message édité par nabbo le 08-06-2007 à 16:07:38
mood
Publicité
Posté le 08-06-2007 à 15:19:43  profilanswer
 

n°1572443
nabbo
Posté le 08-06-2007 à 16:14:17  profilanswer
 

aller, je me réponds... :D
 
il faut utiliser les gestionnaires d'évênements :
 
fichier simple.js :

Code :
  1. function replacetext()
  2. {
  3.     document.getElementById('toto').firstChild.data="nouveau paragraphe";
  4. }
  5. //setup onload function
  6. if(typeof window.addEventListener != 'undefined') //.. gecko, safari, konqueror and standard
  7. window.addEventListener('load', replacetext, false);
  8. else if(typeof document.addEventListener != 'undefined') //.. opera 7
  9. document.addEventListener('load', replacetext, false);
  10. else if(typeof window.attachEvent != 'undefined') //.. win/ie
  11. window.attachEvent('onload', replacetext);
  12. else //** remove this condition to degrade older browsers : mac/ie5 and anything else that gets this far
  13. {
  14. if(typeof window.onload == 'function') //if there's an existing onload function
  15. {
  16.  var existing = onload;
  17.  window.onload = function()  //add new onload handler
  18.  {
  19.   existing(); //call existing onload function
  20.   replacetext();  //call replacetext onload function
  21.  };
  22. }
  23. else  //setup onload function
  24.  window.onload = replacetext;
  25. }


 
merci à la source : http://www.brothercake.com/site/re [...] ts/onload/
 
:jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [HTML/CSS/Javascript] conflit body onload / window.onload

 

Sujets relatifs
remerciement javascriptDictionnaire de mots de passe en français pour Javascript !
code liens htmlInfobules en javascript
[javascript][resolu] variable php dans javascript[javascript/php] Manipulation de variables
Javascript InserticonMenu en html, css et javascript, nombreux problèmes
Des variables variables en javascript ? 
Plus de sujets relatifs à : [HTML/CSS/Javascript] conflit body onload / window.onload


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR