[RESOLU] javascript enfantin mais not defined

javascript enfantin mais not defined [RESOLU] - HTML/CSS - Programmation

Marsh Posté le 11-11-2007 à 18:55:55    

Hello
 
Voici une fonction d'écolier, et oui, je m'initie au javascript, il est jamais trop tard pour apprendre ...
mais voilà, la console Firefox 2.0 me répond ajouterTableau is Not Defined.
 
Là je séche ..., j'ai essayé de changer les attributs de la balise <SCRIPT>, virer les <META> etc de Dreamweaver
mais rien n'y fait. Au mieux j'avais une fonction qui ne fesait rien, de mémoire  en mettant juste <SCRIPT language="javascript"> ... Merci les courageux du dimanche soir ;o)
 

Code :
  1. <HTML>
  2. <TITLE> un titre bidon </ TITLE
  3. <HEAD>
  4. <SCRIPT type="text/javascript" language="javascript">
  5.    
  6. function ajouterTableau(nbLignes, nbColonnes){
  7.      var fragment = document.createDocumentFragment();
  8.      var body = document.getElementsByTag("body" )[0];
  9.      var table = document.createElement("table" );
  10.    
  11.      for(i=0; i<nbLignes; i++){
  12.            var tr = document.createElement("tr" );
  13.            for(j=0; j<nbColonnes; j++){
  14. Oui, il y a une faute de frappe sur la passerelle d'XP, c'est bien 192.168.0.2 mais ça marche pas.
  15.                 var td = document.createElement("td" );
  16.                 tr.appendChild(td);
  17.           }
  18.           table.appendChild(tr);
  19.      }
  20.      fragment.appendChild(table);
  21.      body.appendChild(fragment);
  22. }
  23. </SCRIPT>
  24. </HEAD>
  25. <BODY onLoad="ajouterTableau(2,3)">
  26. </BODY>


Message édité par popovitch le 11-11-2007 à 23:05:54
Reply

Marsh Posté le 11-11-2007 à 18:55:55   

Reply

Marsh Posté le 11-11-2007 à 21:21:36    

je crois que ca vient juste de la casse sur onload mets tout en minuscules pour voir


---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
Reply

Marsh Posté le 11-11-2007 à 22:47:34    

le onload passe (mais c vrai, c en miniscule si tu le places directement via document.onload)

 

essaye ca, ton getElementsByTagName était faux :

Code :
  1. function ajouterTableau (nbLignes, nbColonnes)
  2. {
  3.       var fragment = document.createDocumentFragment ();
  4.       var body = document.getElementsByTagName ("body" )[0];
  5.       var table = document.createElement ("table" );
  6.    
  7.       for (var i = 0; i < nbLignes; i++)
  8.   {
  9.             var tr = document.createElement ("tr" );
  10.             for(j = 0; j < nbColonnes; j++)
  11.   {
  12.                  var td = document.createElement ("td" );
  13.     td.innerHTML = "texte";
  14.                  tr.appendChild (td);
  15.            }
  16.            table.appendChild (tr);
  17.       }
  18.       fragment.appendChild (table);
  19.       body.appendChild (fragment);
  20. }

Message cité 1 fois
Message édité par SICKofitALL le 11-11-2007 à 22:49:10

---------------
We deserve everything that's coming...
Reply

Marsh Posté le 11-11-2007 à 22:53:54    

Effectivement, vous avez raison c t bien la casse.
Ceci étant, le source de ma page n'a pas changé et je ne vois pas de balises <table>
inséré dans le source ... si vous avez des pistes je suis tout ouï
 

mIRROR a écrit :

je crois que ca vient juste de la casse sur onload mets tout en minuscules pour voir


Reply

Marsh Posté le 11-11-2007 à 22:58:30    

popovitch a écrit :

Effectivement, vous avez raison c t bien la casse.
Ceci étant, le source de ma page n'a pas changé et je ne vois pas de balises <table>
inséré dans le source ... si vous avez des pistes je suis tout ouï
 


 
ben reprends mon code, ca te donne ca :

Code :
  1. <html><head><title>un titre bidon</title><!-- TITLE
  2. <HEAD-->
  3. <script type="text/javascript" language="javascript">
  4.    
  5. function ajouterTableau(nbLignes, nbColonnes){
  6.       var fragment = document.createDocumentFragment();
  7.       var body = document.getElementsByTagName("body" )[0];
  8.       var table = document.createElement("table" );
  9.    
  10.       for(var i=0; i<nbLignes; i++){
  11.             var tr = document.createElement("tr" );
  12.             for( var j=0; j<nbColonnes; j++){
  13.                  var td = document.createElement("td" );
  14.     td.innerHTML = "texte";
  15.                  tr.appendChild(td);
  16.            }
  17.            table.appendChild(tr);
  18.       }
  19.       fragment.appendChild(table);
  20.       body.appendChild(fragment);
  21. }
  22. </script></head><body onload="ajouterTableau(2,3)">
  23. <table><tr><td>texte</td><td>texte</td><td>texte</td></tr><tr><td>texte</td><td>texte</td><td>texte</td></tr></table></body></html>


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 11-11-2007 à 23:02:46    

popovitch a écrit :

Effectivement, vous avez raison c t bien la casse.
Ceci étant, le source de ma page n'a pas changé et je ne vois pas de balises <table>
inséré dans le source ... si vous avez des pistes je suis tout ouï
 


 
les tables ne seront pas insérées dans le source mais dans le source "généré" [:aloy]
pour l instant je ne connais que cette extension firefox qui lit le source généré


---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
Reply

Marsh Posté le 11-11-2007 à 23:04:09    

Merci beaucoup c sympa je vais pouvoir aller me coucher l'esprit plus serein (hé oui je suis moi con qu'hier mais c'était pas gagné d'avance  :jap: )
Pour info, si je n'avais pas introduit de texte je n'aurais jamais vu le resultat car javascript ne modifie pas la structure du document HTML en fait ou il modifie son interprétation juste avant l'affichage c ça ? (je suis pas sur de bien comprendre)  
 

SICKofitALL a écrit :

le onload passe (mais c vrai, c en miniscule si tu le places directement via document.onload)
 
essaye ca, ton getElementsByTagName était faux :

Code :
  1. function ajouterTableau (nbLignes, nbColonnes)
  2. {
  3.       var fragment = document.createDocumentFragment ();
  4.       var body = document.getElementsByTagName ("body" )[0];
  5.       var table = document.createElement ("table" );
  6.    
  7.       for (var i = 0; i < nbLignes; i++)
  8.   {
  9.             var tr = document.createElement ("tr" );
  10.             for(j = 0; j < nbColonnes; j++)
  11.   {
  12.                  var td = document.createElement ("td" );
  13.     td.innerHTML = "texte";
  14.                  tr.appendChild (td);
  15.            }
  16.            table.appendChild (tr);
  17.       }
  18.       fragment.appendChild (table);
  19.       body.appendChild (fragment);
  20. }



Reply

Marsh Posté le 11-11-2007 à 23:05:31    

vous postez rapidement les mecs ! c super merci pour ces explications !

Reply

Marsh Posté le 11-11-2007 à 23:07:06    

A noter que que pour séparer le html du js, tu peux placer ca apres la définition de ta fonction :

Code :
  1. window.onload = function () { ajouterTableau(2,3) };


 
et là la casse du onload est importante
 
sinon +1 pour mIRROR, ya aussi FireBug qui est un excellent complément à la premiere :)


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 11-11-2007 à 23:10:26    

popovitch a écrit :

Merci beaucoup c sympa je vais pouvoir aller me coucher l'esprit plus serein (hé oui je suis moi con qu'hier mais c'était pas gagné d'avance  :jap: )
Pour info, si je n'avais pas introduit de texte je n'aurais jamais vu le resultat car javascript ne modifie pas la structure du document HTML en fait ou il modifie son interprétation juste avant l'affichage c ça ? (je suis pas sur de bien comprendre)  
 


 
tu peux modifier ce que tu veux dans ta page avec le JS, la seule contrainte est qu'elle soit chargée (d'où le "onload" )
Mais, lorsque tu demandes d'afficher la source, le navigateur te montre la page telle qu'elle lui est arrivée.
Toutes les modifs que tu fais ensuite le browser les applique, mais la source, càd le fichier original qui vient du serveur, reste le même :)


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 11-11-2007 à 23:10:26   

Reply

Marsh Posté le 11-11-2007 à 23:13:41    

SICKofitALL a écrit :

A noter que que pour séparer le html du js, tu peux placer ca apres la définition de ta fonction :

Code :
  1. window.onload = function () { ajouterTableau(2,3) };


 
et là la casse du onload est importante
 
sinon +1 pour mIRROR, ya aussi FireBug qui est un excellent complément à la premiere :)


 
toutes mes confuses j oublie souvent que firebug lit le code généré :jap:
et il est nettement mieux que webdeveloper d ailleurs


---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
Reply

Marsh Posté le 11-11-2007 à 23:14:56    

les deux font la paire de toutes facon je pense :)


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 11-11-2007 à 23:20:49    

Merci SIckofitALL et mIRROR !  
 
P.S. j'adore cet avatar http://forum-images.hardware.fr/images/perso/aloy.gif c'est bien trouvé Lol

Reply

Sujets relatifs:

Leave a Replay

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