11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour.

Des portions de script cherchent à établir une compatibilité avec netscape 4, IE4 et IE5...

Ces navigateurs anciens géraient le DOM à leur convenance : (document.layers, document.all...)

Aujourd'hui, on fait beaucoup de choses avec document.getElementById("IdElt") sur la plupart des navigateurs actuels.

Ainsi, cette fonction est particulièrement problématique :


function gettip(name)
{
... // contenu obscur plein de ?, de layers et de document.all
}


... parce qu'à première vue on n'y comprend pas grand-chose, et qu'on ne voit pas trop ce qu'elle veut renvoyer, au juste :
- le noeud DOM visé par name ?
- le sous-ensemble style attaché à ce noeud ?

Mais, en tout cas, ces allusions à document.layers ou document.all sont à éradiquer au plus tôt...

D'autre part, le but du jeu étant de montrer ou cacher un noeud, le code suivant sera efficace:


function show(evt, name)
{
        // evt? noel:ramadan
	document.getElementById(name).style.visibility='visible';
}

function hide(name)
{
	document.getElementById(name).style.visibility='hidden';
}



... et marchera très bien sur firefox, ie6, ie7 et opera...

Par contre, toute allusion à l'objet "event" posera des problèmes tant que son utilisation ne sera pas définie et implantée de la même manière sur les navigateurs.

Mais, comme d'autre part vous avez cours-circuité avec

      // Valeurs definies par moi
      x=90;
      y=330;

... le problème ne se pose pas.

Je vous conseille donc de désactiver les fonctions show et hide, et d'expérimenter avec celles que je vous propose...
GeorgesM, merci de la clarté de vos explications.
Je vais les mettre en oeuvre dès que possible.
Modifié par pyxosledisciple (29 Sep 2006 - 14:58)
GeorgesM,

J'ai mis vos conseils en pratique mais cela ne fonctionne qu'avec FF Smiley decu

Le lien qui appelle les fonctions hide() et show() :
<a href="catalogue-familles.php?c=CATPEMCS00#CATPEMCS00" title="" onmouseover="window.status='Voir ce catalogue'; show('CATPEMCS00'); return true;" onmouseout="hide('CATPEMCS00'); return true;"><img class='vignette-catalogue' src='http://127.0.0.1/titanox/wp-content/themes/default/images/CATPEMCS00.jpg' alt=' Image de Fixations à sertir PEM' /></a><a name='CATPEMCS00'></a>


Les fonctions hide() et show() :

function hide(name){
	document.getElementById(name).style.visibility='hidden';
}
function show(name){
	document.getElementById(name).style.visibility='visible';
}
bonjour,
pyxosledisciple a écrit :
GeorgesM,

J'ai mis vos conseils en pratique mais cela ne fonctionne qu'avec FF Smiley decu

a [#red]name[/#]='CATPEMCS00'></a>



getElementById accède à un attribut "id" et pas "name"