Code javascript en externe ne fonctionne pas

Eléphant du PHP | 447 Messages

26 janv. 2009, 13:25

Helloooohoho :D

J'utilise ce p'tit bout de shcript:

Code : Tout sélectionner

<script> function visibilite(thingId,txtAff,txtMasque) { var targetElement; var targetElementLink; targetElement = document.getElementById(thingId) ; targetElementLink = document.getElementById(thingId+'Link'); if (targetElement.style.display == "none") { targetElement.style.display = "" ; targetElementLink.innerHTML = txtMasque ; } else { targetElement.style.display = "none" ; targetElementLink.innerHTML = txtAff ; } } </script>
Donc, ça fait c'que j'veux quand je le mets dans la partie 'body' de mes pages, par contre j'ai essayé de le mettre dans un fichier externe:

toto.js

Code : Tout sélectionner

function visibilite(thingId,txtAff,txtMasque) { var targetElement; var targetElementLink; targetElement = document.getElementById(thingId) ; targetElementLink = document.getElementById(thingId+'Link'); if (targetElement.style.display == "none") { targetElement.style.display = "" ; targetElementLink.innerHTML = txtMasque ; } else { targetElement.style.display = "none" ; targetElementLink.innerHTML = txtAff ; } }
puis je l'ai invoqué comme ceci dans la partie 'head':

Code : Tout sélectionner

<script type="text/javascript" src="js/toto.js"></script>
Et là ça marche plus... j'aimerais bien comprendre pourquoi. si vous avez une explication, ça m'intéresse!
Probably (only a) Human Problem?

ViPHP
ViPHP | 3607 Messages

26 janv. 2009, 14:19

C'est parce que le dom n'est pas chargé lors de l'appel de ton fichier...
En général, on utilise le onload du body pour pallier à ceci

Code : Tout sélectionner

document.body.onload=function(){ //içi ta fonction };
Bon là je suis pas très sur du code, car je le fait de tête...
Si on veut éxécuter plusieurs évènements à la suite: http://simonwillison.net/2004/May/26/addLoadEvent/

Eléphant du PHP | 447 Messages

26 janv. 2009, 15:14

merci! :wink:

bon, ben j'crois que j'vais pas me prendre la tête, surtout que j'ai que 2 fichier où je l'utilise...
Probably (only a) Human Problem?

ViPHP
ViPHP | 3607 Messages

26 janv. 2009, 16:37

Rooo ben c'est dommage,
c'est pas vraiment compliqué... :(

Eléphant du PHP | 447 Messages

26 janv. 2009, 17:11

hihi :)

ouais j'pense pas m'en servir sur d'autres pages, donc j'vais pas appeler cette fonction sur les pages où elle ne sert à rien...
Probably (only a) Human Problem?