erreur bizarre avec onclick et onload

erreur bizarre avec onclick et onload - HTML/CSS - Programmation

Marsh Posté le 29-07-2005 à 12:32:29    


voila mon code ou une erreur bizare apparait  
a chaque fois que l'on clic sur le boutton il met : "erreur object attendu ligne 1"
 

Code :
  1. <html>
  2. <body onload="chargement()">
  3. <SCRIPT LANGUAGE=JavaScript >
  4.     function fct() {
  5.         alert("ok2" ) ;
  6.         return true  ;
  7.     }
  8.   function chargement () {
  9.       document.write( '<SPAN ID=spanButtons LANGUAGE=JavaScript') ;
  10.       document.write( ' onclick="return fct() ;" >');   
  11.       document.write( '<INPUT TYPE=button VALUE="Afficher" path="monpath">');
  12.       document.write( '</SPAN>');
  13.       return "";
  14.   } 
  15.    
  16. </SCRIPT>
  17. </body>
  18. </html>


 
 
 
 
j'ai resolu en appelant la fonction directement mais j'aimerais savoir pourquoi ca marche dans l'un et pas dans l'autre ?  
 

Code :
  1. <html>
  2. <body>
  3. <SCRIPT LANGUAGE=JavaScript >
  4.     function fct() {
  5.         ...
  6.     }
  7.   function chargement () {
  8.       ...
  9.   } 
  10. chargement() ;
  11.    
  12. </SCRIPT>
  13. </body>
  14. </html>


Reply

Marsh Posté le 29-07-2005 à 12:32:29   

Reply

Marsh Posté le 29-07-2005 à 12:37:01    

ali0baba a écrit :

Code :
  1. <html>
  2. <body onload="chargement()">
  3. <SCRIPT LANGUAGE=JavaScript >
  4.     function fct() {
  5.         alert("ok2" ) ;
  6.         return true  ;
  7.     }
  8.   function chargement () {
  9.       document.write( '<SPAN ID=spanButtons LANGUAGE=JavaScript') ;
  10.       document.write( ' onclick="return fct() ;" >');   
  11.       document.write( '<INPUT TYPE=button VALUE="Afficher" path="monpath">');
  12.       document.write( '</SPAN>');
  13.       return "";
  14.   } 
  15.    
  16. </SCRIPT>
  17. </body>
  18. </html>




 

  • Aucun doctype
  • Pas de head
  • Ni de title
  • Attribut language de script qui n'existe pas
  • Des vieux document.write obsolètes
  • Un attribut language sur un span -> 20 ans de métier, jamais vu ça [:johneh]  
  • Un span autour d'un bouton pour gérer le click [:johneh]  
  • Un attribut path sur l'input qui n'existe pas
  • Un return ""  [:johneh]  


Bref, très beaucoup de bizarreries [:johneh]

Reply

Marsh Posté le 29-07-2005 à 13:11:45    

moi, je dis, faut tout refaire.
 
 
la même chose en plus simple & en mieux  :p  

Code :
  1. <script type="text/javascript">
  2.      function fct() { // fonction lancé lors du onclick
  3.             alert("ok2" ) ;
  4.             return true  ;
  5.      }
  6.      function chargement () {
  7. // quand on click sur l'element bouton_affiche, ça va lancer la fonction fct
  8.          document.getElementById("bouton_affiche" ).onclick=fct;
  9.      }
  10.      window.onload=chargement; // lancer la fonction de chargement quand la page sera chargé
  11.      </script>
  12.       <input type="button" value="Afficher" path="monpath" id="bouton_affiche">


Message édité par zapan666 le 29-07-2005 à 13:13:32

---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 29-07-2005 à 13:20:17    

zapan666 a écrit :

moi, je dis, faut tout refaire.
 
 
la même chose en plus simple & en mieux  :p  

Code :
  1. [..]



 
encore plus simple  

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. <script type="text/javascript">
  6.  window.onload= function() {
  7.   document.getElementById("bouton_affiche" ).onclick= function(){
  8.         alert("ok2" ) ;
  9.   }
  10.  }
  11. </script>
  12.      
  13. </head>
  14. <body>
  15. <input type="button" value="Afficher" path="monpath" id="bouton_affiche">
  16. </body>
  17. </html>


Message édité par gatsusat le 29-07-2005 à 13:30:13
Reply

Marsh Posté le 29-07-2005 à 13:23:39    

FlorentG a écrit :

  • Aucun doctype
  • Pas de head
  • Ni de title
  • Attribut language de script qui n'existe pas
  • Des vieux document.write obsolètes
  • Un attribut language sur un span -> 20 ans de métier, jamais vu ça [:johneh]  
  • Un span autour d'un bouton pour gérer le click [:johneh]  
  • Un attribut path sur l'input qui n'existe pas
  • Un return ""  [:johneh]  


Bref, très beaucoup de bizarreries [:johneh]


 
 
oui tous les bizaries que tu vois c'est la facon de programmer de microsoft  :D :lol:  :lol:  
je travail sur les data island et mis a part microsoft j'ai pas vu de bon docs et d'exemple SANS ERREURS (car j'en ai vu plein  :o  )
 
 
Aucun doctype --> j'en mets jamais ...
 
Pas de head --> pour eviter de surcharger ici , je l'ai enlevé (sinon il est bien dans mon code  :) )
 
Ni de title -->  idem eviter de surcharger  
 
Attribut language de script qui n'existe pas -> dit ca a microsoft  :pt1cable:  
 
Des vieux document.write obsolètes ->  :??: a bon, tu utilises quoi d'autre ?
 
Un attribut language sur un span -> 20 ans de métier, jamais vu ça [:johneh]  -> dit ca a microsoft  :pt1cable:  
 
Un span autour d'un bouton pour gérer le click [:johneh] -> dit ca a microsoft  :pt1cable:  sinon c'est TRES PRATIQUE si ta 1000 boutons tu ecris une seul fois ton onclick au lieu de le faire pour les 1000 boutons ...
 
Un attribut path sur l'input qui n'existe pas -> dit ca a microsoft  :pt1cable:  je m'en sers lors du javascript pour gerer les evenements ...
 
Un return ""  [:johneh]  -> oui bon la c'est moi qui les rajouter, pour etre sur que l'erreur ne vienne pas de la (car l'erreur est objet attendu ...)
 
 

Reply

Marsh Posté le 29-07-2005 à 13:27:55    

ben mon avis :  
 
- ce code de merde c'est toi qui l'a fait et pas microsoft.
- tu sais pas programmer
- tu peux apprendre le HTML et le JavaScript comme on le fait de nos jours

Reply

Marsh Posté le 29-07-2005 à 13:36:38    

gatsusat a écrit :

ben mon avis :  
 
- ce code de merde c'est toi qui l'a fait et pas microsoft.
- tu sais pas programmer
- tu peux apprendre le HTML et le JavaScript comme on le fait de nos jours


 
 
je trouve cela limite insultant ...
et pis j'ai pas besoin d'apprendre a programmer le html ni le javascript !!!

Reply

Marsh Posté le 29-07-2005 à 13:41:41    

ali0baba a écrit :

je trouve cela limite insultant ...
et pis j'ai pas besoin d'apprendre a programmer le html ni le javascript !!!


 
 
C'est juste la triste vérité.
 
Pourquoi tu rapporte tout à microsoft, tu peux nous l'expliquer ?
tu as utilisé un soft de Microsoft pour faire ca ? lequel ?
tu as suivi des tutoriels de crosoft ?
 
si tu dois faire un site, essaye d'abord à bien comprendre comment on fait du HTML proprement et du JS proprement

Reply

Marsh Posté le 29-07-2005 à 13:43:34    

ali0baba a écrit :

je trouve cela limite insultant ...
et pis j'ai pas besoin d'apprendre a programmer le html ni le javascript !!!


Il te dit simplement, d'une magnière un peu sèche, il est vrai, que ce n'est pas microsoft qui a fait des erreurs dans ton code, mais toi :D


Message édité par zapan666 le 29-07-2005 à 13:43:58

---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 29-07-2005 à 13:47:21    

ali0baba a écrit :


Un span autour d'un bouton pour gérer le click [:johneh] -> dit ca a microsoft  :pt1cable:  sinon c'est TRES PRATIQUE si ta 1000 boutons tu ecris une seul fois ton onclick au lieu de le faire pour les 1000 boutons ...


y'a beaucoup plus pratique/mieux/simple  :ange:  
http://forum.hardware.fr/forum2.ph [...] 3#t1135362
 


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 29-07-2005 à 13:47:21   

Reply

Marsh Posté le 29-07-2005 à 13:54:45    

bon d'abord regarde ce tutoriel (si t'arrive a le comprendre  :lol: )
http://msdn.microsoft.com/archive/ [...] efault.asp
c'est pas le site de microsoft ca ?
 
tu telecharges l'exemple, tu ouvres le fichier sample2.htm puis tu regarde la ligne 84 ...
 
 
 
et pis je vais te dire mon niveau comme ca tu me prendras peut etre pas pour un debutant :
 
je realise une page web CLIENT pour examiner des donnees inclus dans plusieurs fichiers xml  
- d'abord je programme en activeX (d'ou ma fonction chargement) pour examiner les differents fichier xml pour un affichage dynamique.
- puis avec les data islandes, j'execute des requetes xquery pour recuperer les donnees et les afficher ... d'ou l'exemple du site de microsoft

Reply

Marsh Posté le 29-07-2005 à 13:57:55    

Citation :

Archived content. No warranty is made as to technical accuracy. Content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.


Message édité par zapan666 le 29-07-2005 à 13:58:25

---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 29-07-2005 à 14:02:23    

zapan666 a écrit :

Citation :

Archived content. No warranty is made as to technical accuracy. Content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.



 
bon ok
n'empeche que ca prouve que ce n'est pas qui code comme un barbare
je suis juste un peu faignant pour modifier le code ...

Reply

Marsh Posté le 29-07-2005 à 14:02:49    

tu reflechirai un peu plus et tu remarquerai que ce que tu as essayé de faire n'est en aucun cas identique à l'exemple montré.
 
m'enfin bref. jvais pas te faire un dessin.
 
ensuite c'est pas parce que tu fais appel à un objet ActiveX que tu vas dire : je programme en ActiveX.
Ensuite pour récupérer des informations de données XML, c'est XmlHttpRequest qui est le plus adapté pour ça
ya de bon tutos sur http://www.openweb.eu.org
et si tu as la flème de t'occuper de gérer ce tralala, la classe XHR programmée en Javascript s'occupe de Gérer à ta place.
 
Pour le moment, ta solution ne fonctionne que sous IE


Message édité par gatsusat le 29-07-2005 à 14:05:05
Reply

Marsh Posté le 29-07-2005 à 14:03:53    

gatsusat a écrit :

encore plus simple  

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. <script type="text/javascript">
  6.  window.onload= function() {
  7.   document.getElementById("bouton_affiche" ).onclick= function(){
  8.         alert("ok2" ) ;
  9.   }
  10.  }
  11. </script>
  12.      
  13. </head>
  14. <body>
  15. <input type="button" value="Afficher" path="monpath" id="bouton_affiche">
  16. </body>
  17. </html>



Depuis quand on peut mettre un input dans le body direct ? ;)
 

ali0baba a écrit :

Aucun doctype --> j'en mets jamais ...


Il faut en mettre, c'est presque obligatoire
 

ali0baba a écrit :

Pas de head --> pour eviter de surcharger ici , je l'ai enlevé (sinon il est bien dans mon code  :) )
 
Ni de title -->  idem eviter de surcharger


Le head, comme le title sont obligatoires
 

ali0baba a écrit :

Un span autour d'un bouton pour gérer le click [:johneh] -> dit ca a microsoft  :pt1cable:  sinon c'est TRES PRATIQUE si ta 1000 boutons tu ecris une seul fois ton onclick au lieu de le faire pour les 1000 boutons ...
 


 
Euh... Je pige pas :heink: Si t'as 1000 boutons t'aura 1000 span ? [:johneh] De toute manière on n'utilise plus l'attribut onclick. C'est le JS qui va greffer le onclick tout seul ;)
 

Reply

Marsh Posté le 29-07-2005 à 14:04:19    

le problème, souvent, il est entre la chaise et le clavier [:pingouino]


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
Reply

Marsh Posté le 29-07-2005 à 14:05:59    

FlorentG a écrit :

Depuis quand on peut mettre un input dans le body direct ? ;)
 


 
 
LA flème de mettre le FORM juste pour l'exemple stou.  :kaola:


Message édité par gatsusat le 29-07-2005 à 14:07:03
Reply

Marsh Posté le 29-07-2005 à 14:06:40    

gatsusat a écrit :

[quotemsg=1164697,15,208403]
Depuis quand on peut mettre un input dans le body direct ? ;)
[/quote]
LA flème de mettre le FORM juste pour l'exemple stou.  :kaola:


Depuis quand on peut mettre un input dans un form direct ? ;)

Reply

Marsh Posté le 29-07-2005 à 14:07:49    

FlorentG a écrit :

Depuis quand on peut mettre un input dans un form direct ? ;)


 
Depuis quand on peut mettre un form direct dans le body ? [:pingouino]
 
Je sors, ouais [:pingouino]


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
Reply

Marsh Posté le 29-07-2005 à 14:08:22    

FlorentG a écrit :


 
Euh... Je pige pas :heink: Si t'as 1000 boutons t'aura 1000 span ? [:johneh] De toute manière on n'utilise plus l'attribut onclick. C'est le JS qui va greffer le onclick tout seul ;)


 
moi aussi je viens juste de l'apprendre ce matin en lisant l'exemple de microsoft :
 

Code :
  1. <SPAN ID=spanButtons LANGUAGE=JavaScript onclick="return spanButtons_onclick()">
  2.    
  3. <INPUT TYPE=button VALUE="American" path="american_allstars.xml">
  4. <INPUT TYPE=button VALUE="National" path="national_allstars.xml">
  5. ...
  6. </SPAN>

Reply

Marsh Posté le 29-07-2005 à 14:08:45    

FlorentG a écrit :

Depuis quand on peut mettre un input dans un form direct ? ;)


 
 
hannnnn c'est comme ca que tu le veux ?
 

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. <script type="text/javascript">
  6.  window.onload= function() {
  7.   document.getElementById("bouton_affiche" ).onclick= function(){
  8.   alert("ok2" ) ;
  9.   }
  10.  }
  11. </script>
  12.      
  13. </head>
  14. <body>
  15. <form method="post" action="">
  16. <input type="button" value="Afficher" path="monpath" id="bouton_affiche">
  17. </form>
  18. </body>
  19. </html>


 
manque quelque chose ?

Reply

Marsh Posté le 29-07-2005 à 14:09:05    

ali0baba a écrit :

LANGUAGE=JavaScript[/cpp]


 
Depuis quand ca existe encore ? [:pingouino]


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
Reply

Marsh Posté le 29-07-2005 à 14:09:13    

Il manque un élément :o On peut pas mettre de input comme ça, il faut un block style div ou p :o

Reply

Marsh Posté le 29-07-2005 à 14:09:43    

gatsusat a écrit :

hannnnn c'est comme ca que tu le veux ?
 

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. <script type="text/javascript">
  6.  window.onload= function() {
  7.   document.getElementById("bouton_affiche" ).onclick= function(){
  8.   alert("ok2" ) ;
  9.   }
  10.  }
  11. </script>
  12.      
  13. </head>
  14. <body>
  15. <form method="post" action="">
  16. <input type="button" value="Afficher" path="monpath" id="bouton_affiche">
  17. </form>
  18. </body>
  19. </html>


 
manque quelque chose ?


 
Des sous :o


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
Reply

Marsh Posté le 29-07-2005 à 14:12:22    

FlorentG a écrit :

Il manque un élément :o On peut pas mettre de input comme ça, il faut un block style div ou p :o


ou un span  :)

Reply

Marsh Posté le 29-07-2005 à 14:13:16    

ali0baba a écrit :

ou un span  :)


 
C'pa un bloc !


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
Reply

Marsh Posté le 29-07-2005 à 14:13:32    

Par exemple, oui

Reply

Marsh Posté le 29-07-2005 à 14:13:43    

Si ça marche, voir dans la DTD

Reply

Marsh Posté le 29-07-2005 à 14:18:46    

input est un élément inline de type remplacé, et donc il accepte qu'on lui file des dimensions. et bien entendu il peut etre mis dans un élément inline comme le span.
 
@ali0baba : les évènements onclick sur les boutons c'est pas avec un span pourri comme tu l'as fait qu'on fait ça.

Reply

Marsh Posté le 29-07-2005 à 14:21:46    

Tiens...j'apprend un truc là (je pensais surcharger mon code en encapsulant mes input dans des div)...  
 
donc si je vous suis...ceci est correct...?  
 

Code :
  1. <div>
  2.    <label for="blablabla">...</label>
  3.    <input type="..." name="..." id="blablabla" value="" />
  4. </div>

Reply

Marsh Posté le 29-07-2005 à 14:22:40    

oui :o


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
Reply

Marsh Posté le 29-07-2005 à 14:38:21    


bon on critique mon code (ou plutot le code de microsoft)
mais ca reponds toujours pas a ma premiere question :
pourquoi  
 
ca marche pas avec ca :

Code :
  1. ...
  2. <body onload="chargement();">
  3. ...
  4. </body>
  5. ...


 
et ca marche avec ca :

Code :
  1. ...
  2. <body>
  3. <script ...>
  4. chargement() ;
  5. </script>
  6. ...
  7. </body>
  8. ...


 
 
je toujours cru que ca fessait la meme chose, c'est quoi la difference ?

Reply

Marsh Posté le 29-07-2005 à 14:43:48    

FlorentG a écrit :

Il manque un élément :o On peut pas mettre de input comme ça, il faut un block style div ou p :o


FIELDSET §§§§§§§§§§


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 29-07-2005 à 14:47:20    

onload : ça va se lancer quand la page sera chargé.
dans ton 2nd exemple, ça se lance quand le navigateur passe dessus. C-a-d quand dans le 1er exemple, c'est normal que ça marche pas, quand la page est chargé, tes documents.write, ils doivent écrires OU ?
alors que dans le 2nd exemple, ça ecrit directement quand le navigateur passe.
 
 
mais ta fonction chargement, elle craint, prend notre code qui est plus simple/maintenable/aux normes/etc


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 29-07-2005 à 14:54:19    

C'est pour ça que document.write est totalement merdique : on sait pas trop ce qu'il se passe, où ça écrit. D'ailleurs ça marche même pas en XHTML

Reply

Marsh Posté le 29-07-2005 à 15:23:14    

merci pour ta solution mais ca va pas marcher dans mon cas  
 
car je doit faire du html dynamique au chargement de la page web
sans rentrer dans les detail la fonction chargement fais ca :
 
function chargement (){
   // utilisation activex pour lecture des fichiers du repertoire
   var nb = nbre de fichier
   for(var i=0..nb)
      document.write( ...<input... un nouveau bouton pour chaque fichier
}
 
 
donc la fonction document.write est peut etre nul mais je ne vois pas d'autres solutions (en utilisant une balise div + innerHtml ca marche pas !)

Reply

Marsh Posté le 29-07-2005 à 15:23:58    

innerHtml, ou alors des fonctions DOM (genre createElement et setAttribute)

Reply

Marsh Posté le 29-07-2005 à 15:24:12    

Question con, mais pourquoi tu le fais pas en PHP?

Reply

Marsh Posté le 29-07-2005 à 15:29:23    

les innerHtml, onclick et autre onload sont ils du pur Javascript standard?  
J ai des scripts qui contiennent ces fonctions qui passent nickel sous IE, mais pas du tout sous Firefox. La compatibilité Firefox est elle un pb connu ou les scripts qu on m'a filé sont mal faits?

Reply

Marsh Posté le 29-07-2005 à 15:35:54    

ben c'est que les script qu'on ta filé sont mal fait.
 
YA encore 2 jours j'ai travaillé sur un script utilisant les fonctions du DOM, et des fonctions comme CreateElement, insertBefore
 
et resultat des courses, ce script fonctionne sous : IE5, 5.5, 6, 7
Firefox, opera 7, 8
Netscape 6,7
 
alors que ya aucune détection de navigateur ou autre.
 
 
 
Ensuite pour notre ami ali0baba
c'est pas avec document.write qu'on créé des éléments maintenant, mais avec CloneNode, CreateElement et d'autres fonctions du DOM, suis ce que te dis FlorentG boudiou
 
sinon un site pour t'aider : www.quirksmode.org
plus les bookmarks de masklinn

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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