Différence entre <a href="javascript:toto()"> et <a onClick="..."> ??

Différence entre <a href="javascript:toto()"> et <a onClick="..."> ?? - HTML/CSS - Programmation

Marsh Posté le 06-06-2006 à 18:06:47    

Salut,  
 
déja quel est la plus correcte des deux ?
 
Mon but est de créer des boutons en html javascript. J évite le <a href="#" onClick="javascript:toto()" > car cela fait remonter l assenceur.
 
J ai commencé sur mon site à passer à <a href="javascript:toto()"> pour beneficier du :hover sous IE mais le comportement me semble différent <a onclick="javascript:toto()"> que j utilisais avant. Certaines fonctions où je passais des this ou des id en parametres fonctionnent avec onClick mais pas avec href. Est-ce un problème connu ? Comment y remedier ?


Message édité par Ricco le 06-06-2006 à 18:09:09

---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
Reply

Marsh Posté le 06-06-2006 à 18:06:47   

Reply

Marsh Posté le 06-06-2006 à 18:23:17    

Voila en fait, si je fais <a onClick="javascript:toto( this )" >test</a>
Je peux bien manipuler l'element a du bouton, et si je change onClick par href ça ne fonctionne plus. Enfin la fonction javascript est bien appelé mais le this ne semble plus correspondre à ce que je veux :-\


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
Reply

Marsh Posté le 06-06-2006 à 18:45:22    

:o :o :o :o :o :o  
 
20.000 fois on le voit ce topik  
 

Code :
  1. <a href="#" onclick="javascript:tunousfaischier();return false;">bye bye</a>


 
Et un lien à tjrs un href que tu le veuille ou non  :fou:  :fou:

Reply

Marsh Posté le 06-06-2006 à 18:53:47    

xtof_83 a écrit :

:o :o :o :o :o :o  
 
20.000 fois on le voit ce topik  
 
[quotemsg=1382311,3,132174]

Code :
  1. <a href="#" onclick="javascript:tunousfaischier();return false;">bye bye</a>



Le mieux étant encore de mettre dans le href un lien vers une page indiquant que le javascript est obligatoire, car le # à une autre signification
 

xtof_83 a écrit :

Et un lien à tjrs un href que tu le veuille ou non  :fou:  :fou:


Ah bon? ça sort d'ou ça?
 

Reply

Marsh Posté le 06-06-2006 à 19:02:04    

anapajari a écrit :

Le mieux étant encore de mettre dans le href un lien vers une page indiquant que le javascript est obligatoire, car le # à une autre signification


 
ouais je sais :D
 

anapajari a écrit :


Ah bon? ça sort d'ou ça?


 
Me suis laisser emporté, mais dans son désolé, on peu pas, ne pas le mettre....
 
EDIT: Et puis à quoi ça servirais un <a>rien</a>
 
 :heink:

Message cité 1 fois
Message édité par xtof_83 le 06-06-2006 à 19:05:24
Reply

Marsh Posté le 07-06-2006 à 00:45:04    

xtof_83 a écrit :

:o :o :o :o :o :o  
 
20.000 fois on le voit ce topik  
 

Code :
  1. <a href="#" onclick="javascript:tunousfaischier();return false;">bye bye</a>


 
Et un lien à tjrs un href que tu le veuille ou non  :fou:  :fou:


 
Enfin bon, moi aussi je peux sortir les  :o T'as pas l'impression d'être à côté de la plaque ??
 
A part me copier/coller du w3c, tu pourrais m'expliquer pourquoi un  

Code :
  1. <a href="javascript:toto(this);" ></a>

ne fait pas du tout la même chose qu'un

Code :
  1. <a href="#" onclick="javascript:toto(this);return false;"></a>

alors ??


Message édité par Ricco le 07-06-2006 à 00:49:00

---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
Reply

Marsh Posté le 07-06-2006 à 00:56:01    

onclick="javascript:toto(this);return false;"
 
WTF [:petrus dei]
 
onclick="toto(this);return false;"
svpmerssi
 
Et les deux font strictement la même chose chez moi (et sont quasiment aussi mauvais l'un que l'autre, la 2e version étant la moins pire)

anapajari a écrit :

Le mieux étant encore de mettre dans le href un lien vers une page indiquant que le javascript est obligatoire


Ce qui n'est jamais le cas

anapajari a écrit :

car le # à une autre signification


Autre que quoi?

anapajari a écrit :

Ah bon? ça sort d'ou ça?


De l'implémentation de certains navigateurs.


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

Marsh Posté le 07-06-2006 à 01:25:06    

masklinn a écrit :

onclick="javascript:toto(this);return false;"
 
WTF [:petrus dei]
 
onclick="toto(this);return false;"
 
Ok merci, j'y vois plus clair dans ce qu'il faut écrire pour avoir ce que je veux ...
 
svpmerssi
 
Et les deux font strictement la même chose chez moi (et sont quasiment aussi mauvais l'un que l'autre, la 2e version étant la moins pire)
 


 
Bein en passant par le OnClick, en passant le this en paramètre, je peux acceder ensuite dans la fonction à l'objet DOM, pour recuperer son pere, ses frere etc... En remplaçant juste onClick par href la fonction est bien appelée mais javascript crash lors de l'accès à a_link.parentNode, élément non définit, le a-link étant le nom du this, le <a /> dans la fonction.  


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
Reply

Marsh Posté le 07-06-2006 à 08:33:04    

ah... euh... ouais ptet, de toute façon faut pas mettre de javascript dans le href et faut pas utiliser le pseudo-protocole "javascript:"


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

Marsh Posté le 07-06-2006 à 09:32:35    

Code :
  1. <a href="javascript:alert(this.tagName);" > test1 </a>   <br/>
  2. <a href="#" onClick="alert(this.tagName);return false;"> test2 </a>


 
Le 2ieme donne bien le bon résultat, enfin celui que j'attends mais pas le premier ...


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
Reply

Marsh Posté le 07-06-2006 à 09:32:35   

Reply

Marsh Posté le 07-06-2006 à 09:41:02    

masklinn a écrit :

Ce qui n'est jamais le cas


Jamais jamais ... c'est vite dit :o J'aurais pu dire "un lien vers un traitement equivalent coté serveur"...
 

masklinn a écrit :

Autre que quoi?


Tout le monde utilise le # en pensant qu'il est l'équivalent de "pas de lien", ce qui n'est pas le cas.
 

masklinn a écrit :

De l'implémentation de certains navigateurs.


C'est l'implémentation des navigateurs qui décide maintenant ???
Et puis c'est nawak quand même, puisque les ancres sont gérées par tous les navigateurs et donc:

Code :
  1. <a name="pouet">poueeet</a>


ne comprends pas de href et fonctionne partout [:spamafote]
 

Ricco a écrit :

Code :
  1. <a href="javascript:alert(this.tagName);" > test1 </a>   <br/>
  2. <a href="#" onClick="alert(this.tagName);return false;"> test2 </a>


Le 2ieme donne bien le bon résultat, enfin celui que j'attends mais pas le premier ...


C'est on ne peut plus normal, il n'y a qu'avec la deuxieme méthode ou tu "attrapes" l'evenement "clic". Grace à cet evenement, tu peux savoir quel est l'objet qui fut cliqué.

Message cité 2 fois
Message édité par anapajari le 07-06-2006 à 09:45:18
Reply

Marsh Posté le 07-06-2006 à 10:03:02    

anapajari a écrit :


Code :
  1. <a name="pouet">poueeet</a>


ne comprends pas de href et fonctionne partout [:spamafote]


 
 
Sauf que cette méthode tend à disparaitre, étant donné qu'on peut aire la même chose en filant tout simplement un id à l'élément vers lequel on souhaite pointer, on évite ainsi de créer un élément pour rien.


---------------
♈ ♋ ♌ ♍ ♎ ♏ - Agora Fidelio | Galerie d'art Toulousaine
Reply

Marsh Posté le 07-06-2006 à 10:41:46    

j_lecruel a écrit :

Sauf que cette méthode tend à disparaitre, étant donné qu'on peut aire la même chose en filant tout simplement un id à l'élément vers lequel on souhaite pointer, on évite ainsi de créer un élément pour rien.


 
 
+1 [:chris94]

Reply

Marsh Posté le 07-06-2006 à 11:17:47    

anapajari a écrit :

Et puis c'est nawak quand même, puisque les ancres sont gérées par tous les navigateurs et donc:

Code :
  1. <a name="pouet">poueeet</a>


ne comprends pas de href et fonctionne partout [:spamafote]


Les ancres c'est nawak [:itm]
 
Elles n'ont pas de sens au niveau de la page et sont donc dépréciée (d'ailleurs je te ferais remarquer que l'attribut name sur les éléments A est déprécié) au profit d'un id signifiant sur un élément quelconque


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

Marsh Posté le 07-06-2006 à 11:19:37    

anapajari a écrit :

Le mieux étant encore de mettre dans le href un lien vers une page indiquant que le javascript est obligatoire, car le # à une autre signification
 
 
Ah bon? ça sort d'ou ça?


 
putain +1 tiens.
 
Et raz-le-bol de voir des mecs qui se la jouent spécialistes des standards ici ou là sur le net avec du javascript dans les liens ou encore des #.  :o  :jap:  

Reply

Marsh Posté le 07-06-2006 à 11:28:55    

j_lecruel a écrit :

Sauf que cette méthode tend à disparaitre, étant donné qu'on peut aire la même chose en filant tout simplement un id à l'élément vers lequel on souhaite pointer, on évite ainsi de créer un élément pour rien.


Oui mais bon c'est dans la recommandation HTML4.01, c'est pas moi qui l'invente!!!
J'ai pas dit que c'était à utiliser, mais c'était un example de lien sans href, supporté par tous les navigateurs.
 

masklinn a écrit :

Les ancres c'est nawak [:itm]
Elles n'ont pas de sens au niveau de la page et sont donc dépréciée (d'ailleurs je te ferais remarquer que l'attribut name sur les éléments A est déprécié) au profit d'un id signifiant sur un élément quelconque


Que ça soit nawak ou pas c'est un autre problème...  
Mais j'aimerais bien savoir d'ou tu sors que c'est déprécié, si je prends la recommandation HTML4.01( lire la) rien ne le précise.
 
Mon seul propos était de contre-dire le fait que les href étaient obligatoires dans les balises A.
 
Et puis de toute façon, aucune des deux solutions présentées pour ajouter la gestion du clic n'est vraiment idéale à mon sens. Le mieux de de setter la gestion des evenements en js, genre:

Code :
  1. document.getElementById('unId').onclick = function (event){ ...}


Comme ça pour les visiteurs ayant le js désactivé, il ne se passe strictement rien [:spamafote]
 

Reply

Marsh Posté le 07-06-2006 à 11:40:15    

Hermes le Messager a écrit :

Et raz-le-bol de voir des mecs qui se la jouent spécialistes des standards ici ou là sur le net avec du javascript dans les liens ou encore des #.  :o  :jap:


Là je suis bien d'accord :jap:
 
Mais pour faire des micro-demos d'une page j'ai un peu de mal à utiliser des vrais liens perso :/
 
Et j'utiliserais bien le "pas de href" pour les liens générés dynamiquement (créations de menus), pas de bol dans 2 navigateurs sur 3 le lien n'est pas interprété comme un lien \o/


Message édité par masklinn le 07-06-2006 à 11:43:28

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

Marsh Posté le 20-06-2006 à 11:24:42    

anapajari a écrit :

Et puis de toute façon, aucune des deux solutions présentées pour ajouter la gestion du clic n'est vraiment idéale à mon sens. Le mieux de de setter la gestion des evenements en js, genre:

Code :
  1. document.getElementById('unId').onclick = function (event){ ...}


Comme ça pour les visiteurs ayant le js désactivé, il ne se passe strictement rien [:spamafote]


 
Une petite question par rapport à ça :  je me suis dit que c'était effectivement plus propre de séparer la gestion des évènements du contenu de la page. Mais apparemment, je n'ai pas dû tout bien comprendre. J'ai fait un test type hello world :

Code :
  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. <!--
  5. document.getElementById('helloworld').onClick = alert('hello world');
  6. -->
  7. </script>
  8. </head>
  9. <body>
  10. <img src="helloworld.gif" id="helloworld" />
  11. </body>
  12. </html>


 
Et ça ne marche pas.. je me suis alors dit que ça devait venir du fait que l'évènement onClick ne fonctionnait pas avec une image (on ne sait jamais) et j'ai donc remplacé l'image par une ancre. C'est là que ça a commencé à m'embrouiller :

Code :
  1. <a href="" id="helloworld">hello world</a>


fonctionne avec FF (mais pas avec IE) (je sais qu'un href vide est une aberration, mais quand on tatonne..), mais le alert se lance aussi au chargement de la page

Code :
  1. <a href="#" id="helloworld">hello world</a>


par contre ne fonctionne pas et le alert se lance encore une fois au chargement au chargement.
 
Vous auriez peut être un lien où je pourrais trouver des explications concernant la gestion des évènements séparée ?

Reply

Marsh Posté le 20-06-2006 à 11:48:03    

gravastar_bureau a écrit :

Une petite question par rapport à ça :  je me suis dit que c'était effectivement plus propre de séparer la gestion des évènements du contenu de la page. Mais apparemment, je n'ai pas dû tout bien comprendre. J'ai fait un test type hello world :

Code :
  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. <!--
  5. document.getElementById('helloworld').onClick = alert('hello world');
  6. -->
  7. </script>
  8. </head>
  9. <body>
  10. <img src="helloworld.gif" id="helloworld" />
  11. </body>
  12. </html>



Nan mais faudrait te demander ce que fait ton code ptet, parce que là je sais pas si tu te rends compte (apparement non) mais ton JS s'exécute directement au moment où il est rencontré.
 
En d'autres termes, ton JS s'exécute alors que l'image existe pas encore, donc il tourne un peu dans le vide... d'ailleurs il devrait provoquer au mieux des warnings au pire des erreurs dans tous les navigateurs
 
Accessoirement t'as écrit n'importe quoi:

  • onclick pas onClick, le javascript est case sensitive merci
  • onclick est une fonction, on lui donne donc une fonction, là tu lui donnes ce que retourne "alert('hello world');", c'est stupide
  • Comme je l'ai souligné au dessus, tu essaies de récupérer l'élément img#helloworld alors qu'il n'existe pas encore.


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

Marsh Posté le 20-06-2006 à 12:10:05    

masklinn a écrit :

Nan mais faudrait te demander ce que fait ton code ptet, parce que là je sais pas si tu te rends compte (apparement non) mais ton JS s'exécute directement au moment où il est rencontré.
 
En d'autres termes, ton JS s'exécute alors que l'image existe pas encore, donc il tourne un peu dans le vide... d'ailleurs il devrait provoquer au mieux des warnings au pire des erreurs dans tous les navigateurs
 
Accessoirement t'as écrit n'importe quoi:

  • onclick pas onClick, le javascript est case sensitive merci
  • onclick est une fonction, on lui donne donc une fonction, là tu lui donnes ce que retourne "alert('hello world');", c'est stupide
  • Comme je l'ai souligné au dessus, tu essaies de récupérer l'élément img#helloworld alors qu'il n'existe pas encore.


Alors pour répondre à ta question, je m'en rendais un peu compte, mais insérer une balise script au milieu du code html ne correspond pas trop à ce que j'aurais voulu faire (c'est peut être - sans doute même - débile, mais j'aurais aimé pouvoir séparé  nettement le javascript de l'html).
 
Et au risque de paraître encore plus idiot (si c'est encore possible), alert n'est-il pas considéré comme une fonction ?

Reply

Marsh Posté le 20-06-2006 à 12:12:56    

gravastar_bureau a écrit :

Alors pour répondre à ta question, je m'en rendais un peu compte, mais insérer une balise script au milieu du code html ne correspond pas trop à ce que j'aurais voulu faire (c'est peut être - sans doute même - débile, mais j'aurais aimé pouvoir séparé  nettement le javascript de l'html).


Je vois pas le problème, ya des handlers faits spécialement pour pouvoir exécuter tes scripts après la fin du chargement de la page, genre window.onload

gravastar_bureau a écrit :

Et au risque de paraître encore plus idiot (si c'est encore possible), alert n'est-il pas considéré comme une fonction ?


alert oui, alert('foo') sûrement pas [:pingouino]
 
L'un est une fonction (et 'retourne' donc la fonction), l'autre est un appel de fonction (et retourne donc le résultat de l'appel de la fonction)


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

Marsh Posté le 20-06-2006 à 12:33:56    

Bon, ça suffit. Arrêtez de faire vos clampins et de pondre du JS de merde :o
 
Etape 1 : rendez-vous sur http://developer.yahoo.com/yui/index.html et chopper la librairie Yahoo UI
Etape 2 : choppez dedans les fichier yui\build\yahoo\yahoo-min.js et yui\build\event\event-min.js
Etape 3 : référencez les deux fichiers dans le head
Etape 4 : faites-vous un script d'init qui définira l'event handler pour le a en question :
 

YAHOO.util.Event.addListener('helloworld', 'click', pouet);
 
function pouet(e) {
  alert('Hello World!' + this.href);
  YAHOO.util.Event.stopEvent(e);
}


La lib yahoo event gère en plus l'attachment deferal, à savoir que si l'élément avec l'id spécifié n'existe pas encore, la librairie check à interval régulier jusqu'au window.onload, à la recherche de l'élément -> plus besoin de se faire chier avec le onload. Le premier paramètre d'addListener prend aussi en paramètre une collection d'éléments. Y'a aussi correction automatique du scope, à savoir que this dans l'événement va faire référence à l'objet à l'origine de l'événement, y compris sous IE. Pareil pour la variable e, qui correspond à un objet évènement.

Reply

Marsh Posté le 20-06-2006 à 12:38:24    

Sinon pour revenir à la différence entre :

<a href="javascript: window.open('pouet.html')">pouet</a>


et

<a href="pouet.html" onclick="window.open(this.href); return false;">pouet</a>


 
Essayer d'ouvrir le premier lien dans une nouvelle fenêtre [:dawa] Essayer de faire référencer pouet.html par google [:dawa]

Reply

Marsh Posté le 20-06-2006 à 12:44:25    

FlorentG a écrit :

Bon, ça suffit. Arrêtez de faire vos clampins et de pondre du JS de merde :o
 
Etape 1 : rendez-vous sur http://developer.yahoo.com/yui/index.html et chopper la librairie Yahoo UI
Etape 2 : choppez dedans les fichier yui\build\yahoo\yahoo-min.js et yui\build\event\event-min.js
Etape 3 : référencez les deux fichiers dans le head
Etape 4 : faites-vous un script d'init qui définira l'event handler pour le a en question :
 

YAHOO.util.Event.addListener('helloworld', 'click', pouet);
 
function pouet(e) {
  alert('Hello World!' + this.href);
  YAHOO.util.Event.stopEvent(e);
}


La lib yahoo event gère en plus l'attachment deferal, à savoir que si l'élément avec l'id spécifié n'existe pas encore, la librairie check à interval régulier jusqu'au window.onload, à la recherche de l'élément -> plus besoin de se faire chier avec le onload. Le premier paramètre d'addListener prend aussi en paramètre une collection d'éléments. Y'a aussi correction automatique du scope, à savoir que this dans l'événement va faire référence à l'objet à l'origine de l'événement, y compris sous IE. Pareil pour la variable e, qui correspond à un objet évènement.


 
Merci bien pour la librairie :)
 
Par contre, je n'arrêterais pas de pondre du js de merde :
1/ parce que sinon je m'embête
2/ parce que si on n'essaie pas, on n'apprend pas
3/ parce que j'aime pas les gens grossiers  :p

Reply

Marsh Posté le 20-06-2006 à 13:12:06    

Même si force est de constater qu'on peut se permettre d'être grossier quand on est le plus meilleur de l'univers quand même.


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
Reply

Marsh Posté le 10-09-2007 à 11:49:22    

La solution est peut-être :
<a href="javascript:void(0);" onClick="javascript:toto()" > qui ne rechargera pas la page et ne déplacera pas l'ascenceur.
 
 :)

Reply

Marsh Posté le 10-09-2007 à 11:53:12    

Euh [:w3c compliant]
Qu'est ce que c'est que ce up des 15 mois pour nous pondre un truc toupabo ???

Reply

Marsh Posté le 10-09-2007 à 16:25:00    

PtiMalin a écrit :

La solution est peut-être :
<a href="javascript:void(0);" onClick="javascript:toto()" > qui ne rechargera pas la page et ne déplacera pas l'ascenceur.
 
 :)


Surtout pas, malheureux

Reply

Marsh Posté le 10-09-2007 à 17:00:29    

xtof_83 a écrit :


 
ouais je sais :D
 


 

xtof_83 a écrit :


 
Me suis laisser emporté, mais dans son désolé, on peu pas, ne pas le mettre....
 
EDIT: Et puis à quoi ça servirais un <a>rien</a>
 
 :heink:


<a name="toto">a</a>
 
ça peut être utile des fois :spamafote:

Reply

Marsh Posté le 10-09-2007 à 17:02:12    

ah ouais c'est quoi ce up ?
 
pis d'abors, faut pas mettre de onclick sur le <a>.
faut faire un script associé à la balise, ça évite de coller des trucs pourris partout dans ton code, et ça le rend plus portable.

Reply

Marsh Posté le 10-09-2007 à 17:05:07    

Code :
  1. <html>
  2.  <head>
  3.    <title>plop</title>
  4.    <script type="text/javascript">
  5.      window.onload = Load;
  6.      function Load() {
  7.        var monA = document.getElementById("monA" );
  8.        if (monA) {
  9.          monA.onclick = Plop;
  10.        }
  11.      }
  12.      function Plop() {
  13.        alert("plop" );
  14.        return false;
  15.      }
  16.    </script>
  17.  </head>
  18.  <body>
  19.    <p>
  20.      <a href="nojs.htm" id="monA">click</a>
  21.    </p>
  22.  </body>
  23. </html>


edit : (en qui marche :D)


Message édité par MagicBuzz le 10-09-2007 à 17:20:58
Reply

Marsh Posté le 11-09-2007 à 11:38:37    

masklinn a écrit :


Nan mais faudrait te demander ce que fait ton code ptet, parce que là je sais pas si tu te rends compte (apparement non) mais ton JS s'exécute directement au moment où il est rencontré.
 
En d'autres termes, ton JS s'exécute alors que l'image existe pas encore, donc il tourne un peu dans le vide... d'ailleurs il devrait provoquer au mieux des warnings au pire des erreurs dans tous les navigateurs
 
Accessoirement t'as écrit n'importe quoi:

  • onclick pas onClick, le javascript est case sensitive merci
  • onclick est une fonction, on lui donne donc une fonction, là tu lui donnes ce que retourne "alert('hello world');", c'est stupide
  • Comme je l'ai souligné au dessus, tu essaies de récupérer l'élément img#helloworld alors qu'il n'existe pas encore.

Depuis quand le javascript est case sensitive sur onclick ?  :??:

Reply

Marsh Posté le 11-09-2007 à 11:55:58    

toujours [:w3c compliant]
Mais ce n'est pas le cas de l'attribut html onclick.


Message édité par anapajari le 11-09-2007 à 11:56:09
Reply

Marsh Posté le 11-09-2007 à 13:53:34    

non ce que dit Masklinn est 100% véridique.
Le javascript indiqué dans l'exemple s'éxecute au moment ou il est reçu par le navigateur et non une fois la page entièrement chargée ( dans le head ou pas ça change rien).
Un petit exemple facile à mettre en oeuvre, dans le head tu balourdes:

Code :
  1. alert(document.getElementById('A')==undefined);
  2.   window.onload = function (){
  3.     alert(document.getElementById('A')==undefined);
  4.   }


et tu verras bien ce qui se passe :)

 

EDIT: MAGICBUZZ CA SE FAIT PAS DE SUPPRIMER LES POSTS OU ON DIT DES CONNERIES :o

Message cité 1 fois
Message édité par anapajari le 11-09-2007 à 13:54:11
Reply

Marsh Posté le 11-09-2007 à 14:05:43    

anapajari a écrit :

non ce que dit Masklinn est 100% véridique.
Le javascript indiqué dans l'exemple s'éxecute au moment ou il est reçu par le navigateur et non une fois la page entièrement chargée ( dans le head ou pas ça change rien).
Un petit exemple facile à mettre en oeuvre, dans le head tu balourdes:

Code :
  1. alert(document.getElementById('A')==undefined);
  2.   window.onload = function (){
  3.     alert(document.getElementById('A')==undefined);
  4.   }


et tu verras bien ce qui se passe :)
 
EDIT: MAGICBUZZ CA SE FAIT PAS DE SUPPRIMER LES POSTS OU ON DIT DES CONNERIES :o


j'ai supprimé avant que tu répondes, me rendant compte qu'effectivement j'avais dit un truc pas vrai :D
 
en fait c'est le "window.onload" qui attend gentillement, et moi je fais toujours un window.onload = Init() qui s'occupe de faire tout le reste en début de page, et window est un objet qui existe avant la création de l'oeuf :D mais ensuite l'event n'est levé qu'une fois... la page chargée :) (cf mon exemple par exemple)


Message édité par MagicBuzz le 11-09-2007 à 14:07:18
Reply

Marsh Posté le 11-09-2007 à 17:47:28    

window.onload = Init()  <==== là je sais pas si tu te rend comptes mais tu Executes Init() en mettant les ();
il faut juste passer init en tant que référence :
window.onload = Init


Message édité par gatsu35 le 11-09-2007 à 17:48:14
Reply

Marsh Posté le 11-09-2007 à 17:56:16    

oui bah comme dans son exemple quoi ...
faudrait arrêter de chipoter sur des abus de langage, sinon on va croire que c'est rempli de nerds ce forum


---------------
The Rom's, à votre service
Reply

Marsh Posté le 14-09-2007 à 12:27:14    

Merci TheRom_s :jap:
 
Gatsu35 > Ca doit faire 4 ou 5 ans que je ne fais plus de JS, ou très ponctuellement, j'ai un peu perdu l'habitude de la syntaxe ;) Mais mon exemple est testé et marche, donc c'est à lui qu'il faut faire confiance... :p Si tu crois encore tout ce que je raconte :o

Reply

Marsh Posté le 14-09-2007 à 12:31:37    

MagicBuzz a écrit :

Merci TheRom_s :jap:
 
Gatsu35 > Ca doit faire 4 ou 5 ans que je ne fais plus de JS, ou très ponctuellement, j'ai un peu perdu l'habitude de la syntaxe ;) Mais mon exemple est testé et marche, donc c'est à lui qu'il faut faire confiance... :p Si tu crois encore tout ce que je raconte :o


Mais tu es sur que tu sais programmer ?
 
faire :

Code :
  1. window.onload = init();


revient à mettre la valeur de retour de init() dans window.onload, donc window.onload sera du type "null" si init() ne retourne rien.
Ce que tu dois faire c'est ne pas mettre les guillemets, ou bien faire en sorte que init retourne une fonction

Reply

Marsh Posté le 14-09-2007 à 13:36:37    

regarde mon exemple bordel :o
http://forum.hardware.fr/forum2.ph [...] 0#t1610167
 
j'ai écrit cette ligne "à la va-vite", sans faire attention à ce que j'écrivais.
 
et savoir écrire :

Code :
  1. window.onload = init;


 
C'est loin d'être une preuve de connaissances en programmation.
Vas-y l'affectation de handler à un event ! Affecter un handler à un event, c'est une ineptie totale.
 
On associe, on affecte pas. Déjà le += du C#, je trouve ça limite barbare, mais le = tout court, c'est stupide (et hyper limité). On préfèreras utiliser la fonction myEvent.addHandler(ptrHandler)


Message édité par MagicBuzz le 14-09-2007 à 13:41:54
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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