[ Débutant ] Erreur d'exécution en Javascript

Erreur d'exécution en Javascript [ Débutant ] - HTML/CSS - Programmation

Marsh Posté le 28-10-2005 à 20:27:29    

Bonsoir !  :hello:  
 
Je tiens tout d'abord à dire que je ne savais pas faire de Javascript il y a une heure ! Je fais avec mes connaissances en C...
 
J'ai un script que je souhaite insérer dans une zone d'en-tête de forum afin que dans cette zone s'affiche aléatoirement une phrase.
 

Code :
  1. <script "JavaScript">
  2. function Message_aleatoire()
  3. {
  4. Numero_message = Math.round(Math.random()*3) + 1 ;
  5. switch (Numero_message)
  6. {
  7.  case 1 : return &quot;I don't go looking for trouble. Trouble usually finds me&quot; ; break ;
  8.  case 2 : return &quot;Are you insane? Of course I want to leave the Dursleys! Have you got a house? When can I move in&quot; ; break ;
  9.  case 3 : return &quot;Yeah, Quirrell was a great teacher. There was just that minor drawback of him having Lord Voldemort sticking out of the back of his head!&quot; ; break ;
  10. }
  11. }</script>
  12. <script "JavaScript">
  13. document.write(Message_aleatoire());
  14. </script>


 
Ce bout de code (pris dans la section "Source" et non en mode "Texte" ) ne m'affiche rien dans la zone voulue ! Où pensez-vous que j'ai faux ?
 
Merci pour vos réponses  :jap:

Reply

Marsh Posté le 28-10-2005 à 20:27:29   

Reply

Marsh Posté le 28-10-2005 à 20:48:04    

Mariooo a écrit :

Bonsoir !  :hello:  
 
Je tiens tout d'abord à dire que je ne savais pas faire de Javascript il y a une heure ! Je fais avec mes connaissances en C...
 
J'ai un script que je souhaite insérer dans une zone d'en-tête de forum afin que dans cette zone s'affiche aléatoirement une phrase.
 

Code :
  1. <script "JavaScript">
  2. function Message_aleatoire()
  3. {
  4. Numero_message = Math.round(Math.random()*3) + 1 ;
  5. switch (Numero_message)
  6. {
  7.  case 1 : return &quot;I don't go looking for trouble. Trouble usually finds me&quot; ; break ;
  8.  case 2 : return &quot;Are you insane? Of course I want to leave the Dursleys! Have you got a house? When can I move in&quot; ; break ;
  9.  case 3 : return &quot;Yeah, Quirrell was a great teacher. There was just that minor drawback of him having Lord Voldemort sticking out of the back of his head!&quot; ; break ;
  10. }
  11. }</script>
  12. <script "JavaScript">
  13. document.write(Message_aleatoire());
  14. </script>


 
Ce bout de code (pris dans la section "Source" et non en mode "Texte" ) ne m'affiche rien dans la zone voulue ! Où pensez-vous que j'ai faux ?
 
Merci pour vos réponses  :jap:


 
A part si ton script n'ai pas bon je ne pense pas qu'il y ai de problèmes.
Vérifie tout ton script car de ce que je connais du JavaScript je sais que même s'il est "flexible" il faut faire attention à chaque virgule, chaque point, etc.
 
Tu ferais mieux d'apprendre le langage avant de commencer des scripts n'importe comment.
http://aliasdmc.free.fr/coursjavas [...] ipt72.html Cela pourra surement t'aider...
Je pense que tu n'aura pas beaucoup d'autres réponses ce soir car cette catégorie est un peu déserte depuis la fin de l'après-midi.

Reply

Marsh Posté le 28-10-2005 à 20:56:09    

Finalement il semblerait qu'il y ai de nouveau des forumeurs en ligne!!!

Reply

Marsh Posté le 28-10-2005 à 21:01:43    

Merci  ;)
C'est bien ça le problème... J'ai une assez bonne connaissance du C, et je ne voyais pas ce qui pouvait clocher dans ce code, très simple s'il en est. Autrement je n'aurais pas posté sur ce forum ! :)

Reply

Marsh Posté le 28-10-2005 à 21:17:00    

Mariooo a écrit :

Merci  ;)
C'est bien ça le problème... J'ai une assez bonne connaissance du C, et je ne voyais pas ce qui pouvait clocher dans ce code, très simple s'il en est. Autrement je n'aurais pas posté sur ce forum ! :)


 
C'était quoi le problème ?

Reply

Marsh Posté le 29-10-2005 à 11:56:56    

Mariooo a écrit :


<script "JavaScript">
function Message_aleatoire()  
{  
 Numero_message = Math.round(Math.random()*3) + 1 ;  
 switch (Numero_message)  
 {
  case 1 : return &quot;I don't go looking for trouble. Trouble usually finds me&quot; ; break ;  
  case 2 : return &quot;Are you insane? Of course I want to leave the Dursleys! Have you got a house? When can I move in&quot; ; break ;  
  case 3 : return &quot;Yeah, Quirrell was a great teacher. There was just that minor drawback of him having Lord Voldemort sticking out of the back of his head!&quot; ; break ;  
 }
}</script>
 
<script[b] "JavaScript"
>[/b]
document.write(Message_aleatoire());
</script>


 
_______________________________________________________________
<script type="text/javascript">  
function Message_aleatoire()  
{  
    var Numero_message = parseInt(Math.random()*3) + 1 ;
   
    switch (Numero_message)  
    {  
        case 1 : return "I don't go looking for trouble. Trouble usually finds me"; break ;  
        case 2 : return "Are you insane? Of course I want to leave the Dursleys! Have you got a house? When can I move in"; break ;  
        case 3 : return "Yeah, Quirrell was a great teacher. There was just that minor drawback of him having Lord Voldemort sticking out of the back of his head!" ; break ;  
    }  
}
 
document.write(Message_aleatoire());  
</script>
 
_______________________________________________________________
 
J'ai mis en gras tes erreurs et la correction :  
 
un attribut en HTML c'esdt toujours : attribut="valeur", donc type="text/javascript"
tu trouveras souvent du code du genre :  
<script language="Javascript">, mais c'est une déclaration dépassée, et donc il faut plutot déclarer :
<script type="text/javascript">
 
pour la variable Numero_truc.
tu fais directement un numero_truc = bidule.
mais numero_truc, n'est pas déclaré, donc tu auras une erreur javascript. d'ou le "var" devant la variable. tu peux très bien déclarer ta variable en amont du code. mais je l'ai fait directement.
 
ensuite pour le Math.round, cette fonction comporte un defaut.
 
math.round(0.51) = 1;
Math.round(0.49) = 0;
 
donc il faut utiliser parseInt() qui va simplement te virer la partie décimale.
 
enfin pourquoi a tu mis &quot; pour tes strings, alors que une string en JS c'est soit : 'string' ou bien "string".
je préfère utiliser "string", car on utilise plus souvent des phrases avec des simples quotes :  
ex : "j'ai acheté du pain".
sinon tu peux encadrer ta string avec une simple quote si tu as des double quote dans ta string
ex : 'le chien "est" beau'
ou bien faire un mélange en échappant les quote.
ex : "j'ai acheté \"du pain\" ce matin"
 
enfin pour finir, continu d'utiliser document.write() pour le moment, c'est utile pour débugger et quand on débute, afin de faire quelques manipulation.
 
mais maintenant on utilise directement des propriétés des éléments HTML, et on appelle les élément via un id ex :  
 

Code :
  1. <p id="paragraphe">
  2. texte qui va être remplacé
  3. </p>
  4. <script type="text/javascript">
  5. document.getElementById("paragraphe" ).innerHTML = "le nouveau texte de ce paragraphe";
  6. </script>


 
il y a aussi une chose importante à savoir, le code JS ne se place que entre des balises <script></script> et que dans l'entete de la page HTML <head></head>


Message édité par gatsusat le 29-10-2005 à 12:01:46

---------------
Les CSS c'est bon mangez-en
Reply

Marsh Posté le 29-10-2005 à 18:33:13    

Merci pour ta réponse ! Je m'en vais tester ça de suite.
Pour l'histoire des &quot; c'est pour cela que j'ai précisé que c'était la partie "source" du code. J'administrais la page d'accueil d'un forum (de type heavenforum), et l'en-tête de cette page peut contenir du script, accessible (j'ai l'impression) à la fois en mode "éditeur de texte" et en mode "source HTML". En mode éditeur, les &quot; sont effectivement remplacés par des guillemets doubles.

Reply

Marsh Posté le 29-10-2005 à 19:42:48    

"Ca marche pas !!!"  lol
 
Pourrait-il y avoir quelque chose de manquant dans la config de mon navigateur (Firefox) ? Ou un élément de syntaxe non reconnu ?

Reply

Marsh Posté le 30-10-2005 à 08:37:04    

Code :
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <title></title>
  5. </head>
  6. <body>
  7. <script type="text/javascript">
  8. function Message_aleatoire() 
  9.     var Numero_message = parseInt(Math.random()*3) + 1 ;
  10.     switch (Numero_message) 
  11.     {
  12.         case 1 : return "I don't go looking for trouble. Trouble usually finds me" ; break
  13.         case 2 : return "Are you insane? Of course I want to leave the Dursleys! Have you got a house? When can I move in"; break
  14.         case 3 : return "Yeah, Quirrell was a great teacher. There was just that minor drawback of him having Lord Voldemort sticking out of the back of his head!" ; break
  15.     }
  16. }
  17. document.write(Message_aleatoire());
  18. </script>
  19. </body>
  20. </html>


 
le code dans une page complète. tu as du oublier un truc.
tu peux recoller le code que tu as ????
 
et sert toi de la console javascript sous firefox non didiou


---------------
Les CSS c'est bon mangez-en
Reply

Marsh Posté le 30-10-2005 à 22:53:51    

Oui je peux le coller, mais les balises <html><body> etc semblent ne servir à rien (sous-entendu qu'elles sont supprimées du code à l'édition de l'en-tête). En fait n'importe quel code marche bien jusqu'au moment où j'introduis des formes conditionnelles. C'est pour ça que je demande s'il n'y aura pas quelque chose de plus profond.
Bref je m'y recolle.
Console javascript ? voyons voir ça.
 
Edit : La console Javascipt me serine qu'elle ne connait pas &quot; (ce que l'éditeur du forum me met à la place des " ) ... Ca ne m'étonne pas, mais je ne peux pas y faire grand chose !!


Message édité par Mariooo le 30-10-2005 à 23:17:42
Reply

Marsh Posté le 30-10-2005 à 22:53:51   

Reply

Marsh Posté le 30-10-2005 à 23:37:14    

OOOK c'est bon... "Ca marche !!!"  lol
 
En fait l'éditeur ne reconnaissait pas les " . Pour indiquer une chaine de caractères il fallait simplement la mettre entre guillemets simples...
tout ça pour ça  :pt1cable:  
 
Merci gatsusat pour ta disponibilité et ton aide, j'ai appris deux trois trucs !!!


Message édité par Mariooo le 30-10-2005 à 23:37:46
Reply

Sujets relatifs:

Leave a Replay

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