Forum de discussion
Forum « Programmation Javascript » (archives)
Re: passer un id à une fonction en parametre
Envoyé: 20 octobre 2004, 8h12 par Oznog
Tu aurais eu la réponse dasn ce tutoriel "Modifier la visibilité des objets en DHTML " (http://www.trucsweb.com/DHTML/trucs.asp?no=279&type=2).
Avec document.all tu dois "évaluer" (eval) l'id de cette façon : eval(iParamd).style.visibility...
Le seule détail c'est la méthode "SetTimeout" qui souvant incomprise. La fonction que tu lui passe est elle même un paramètre de cette méthode. Or donc une simple chaine de caractères :
setTimeout(twClignote(sID), 800);
Ceci n'est donc pas évalué par la méthode et passera litérallement "sID" et non pas son contenu. En fait il va tout simplement planter car il attend une chaîne. Bien que tu puisse ignorer les guillement quand tu n'as pas de paramètre, prend l'habitude de les utiliser.
setTimeout("twClignote(sID)", 800);
Mais encore une fois sID reste sID!
setTimeout("twClignote("+sID+")", 800);
Maintenant on a un autre problème, le ID est lui aussi une chaîne et non pas un numéro, alors il dois lui aussi être entre parenthèse, le simple guillement, par exemple, pour ne pas le confondre.
setTimeout("twClignote('"+sID+"')", 800);
Voilà qui passera réellement l'id. Alors voilà l'exemple complet inspiré de mon tutoriel :
<html>
<head>
<title>twClignote</title>
<script type="text/javascript" language="javascript">
<!--
var ns4=document.layers
var ie4=document.all
var ns6=document.getElementById&&!document.all
function twClignote(sID) {
if(ie4) {
eval(sID).style.visibility = (eval(sID).style.visibility=='visible'?'hidden':'visible');
} else
if(ns4) { document.eval(sID).visibility = (document.eval(sID).visibility=='show'?'hidden':'show');
} else
if(ns6) { document.getElementsByTagName(sID).style.visibility = (divns6[sID].style.visibility=='visible'?'hidden':'visible'); }
setTimeout("twClignote('"+sID+"')", 800);
}
// End -->
</script>
</head>
<body onload="twClignote('monID');">
<span id="monID" style="position: absolute; visibility: show"><b>Test de clignotement</b></span>
</body>
</html>
Ciao
Oznog
Réponses
|