Document.getElementById marche pas

Signaler
Messages postés
172
Date d'inscription
mercredi 29 janvier 2003
Statut
Membre
Dernière intervention
24 février 2008
-
Messages postés
172
Date d'inscription
mercredi 29 janvier 2003
Statut
Membre
Dernière intervention
24 février 2008
-
salut a tous , j'ai un ptit probleme et j'ai pas trouvé de solutions ici
Dans mons cript javascipt j'ai :

isIE = (document.all)?true:false; //IE 6
isNN6 = (document.getElementById)?true:false;
isNN1=(document.getElementByName)?true:false; //firefox
isNN4=(document.layers)?true:false;

bon sous IE6 , isIE = true , le reste a false
sous firefox , isNN1=true le reste a false
mais sous netscape , tout est a false , ou est le probleme ?

merci de votre aide.
Pour info : j'ai netscape 7.2

8 réponses

Messages postés
289
Date d'inscription
vendredi 11 mars 2005
Statut
Membre
Dernière intervention
3 avril 2008
4
Salut!

document.all ==> EI
document.getElementById ==> EI , FIREFOX, et NS6+
document.getElementByName ==> ça n'existe pas
document.getElementsByName ==> EI , FIREFOX, et NS6+
document.layers ==> NS4-

A+, Ghislain
Messages postés
289
Date d'inscription
vendredi 11 mars 2005
Statut
Membre
Dernière intervention
3 avril 2008
4
Oups j'oubliais : document.getElementById et document.getElementsByName c'est EI5+

A+
Messages postés
172
Date d'inscription
mercredi 29 janvier 2003
Statut
Membre
Dernière intervention
24 février 2008

mais alors pourquoi mon menu , qui fonctionne avec ce script ne fonctionne pas sous firefox et netscape ? ca vien des liens des liens eux meme ?

mon lien est celui ci :
<tr><td class="soustitre1" onmouseover="this.className='soustitreover';title='statistiques des visites'" onmouseout="this.className='soustitre1'" onclick="ouvrirLien('messtats.php','1')">Stats</td></tr>

merci.
Messages postés
289
Date d'inscription
vendredi 11 mars 2005
Statut
Membre
Dernière intervention
3 avril 2008
4
Salut!

Si tu donnerais le code de ton menu peut-être pourrait-on trouver ce qui cloche. Car des bribe de code c'est trop peu pour trouver l'erreur.

A+, Ghislain
Messages postés
172
Date d'inscription
mercredi 29 janvier 2003
Statut
Membre
Dernière intervention
24 février 2008

ah oui exact , le voici : menu.php
<script language= "javascript">


var TotalMenu=9;


function ouvrirLien(url,ouverture) {
// Cette fonction permet d'ouvrir trois type de lien
// 1 : Dans la fenêtre courante
// 2 : Dans une nouvelle fenêtre
// 3 : Dans une frame dont la cible doit être précisé
switch (ouverture) {
case "0" :
// Ouverture dans la fenêtre courante
document.location.href = url;
break;
case "1" :
// Ouverture d'une nouvelle fenêtre
window.open(url)
break;
case "3" :
// Ouverture dans une frame
window.top.parent.frames[cible].location.href = url
break;
default :
// Normalement, on n'arrive jamais ici
alert('Erreur : Cette valeur est hors limite');
break;
}
}

function clickMenu(num)
{


// Booléen reconnaissant le navigateur (vu en partie 2)
isIE = (document.all)?true:false; //IE 6
isNN6 = (document.getElementById)?true:false;
isNN1=(document.getElementByName)?true:false; //firefox
isNN4=(document.layers)?true:false;


// Compatibilité : l'objet menu est détecté selon le navigateur
if (isIE) menu = document.all['menu' + num];
if (isNN6) menu = document.getElementById('menu' + num);
for (i=1;i<=TotalMenu;i++)
{
if (document.all['menu'+i])
{
if (i != num)
{
if (isIE) menuDiff = document.all['menu'+i];
if (isNN6) menuDiff = document.getElementById('menu'+i);
if (menuDiff.style.display != "none")
{
menuDiff.style.display = "none"
}
}
}
}



// On ouvre ou ferme
if (menu.style.display == "none")
{
// Cas ou le tableau est caché
menu.style.display = ""
} else
{
// On le cache
menu.style.display = "none"
}
}


</script>



<style type ="text/css">
td.titre1 {
vertical-align:middle;
color: #000000;
cursor: hand;
background-image: url(/design/titremenu.gif);
height:16px;
background-repeat: repeat-x;
text-indent:5px;
}
.input {
background-color: #006699;
border: thin #000066;
height:18px;
font-family: "Times New Roman", Times, serif;
}
td.soustitre1 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
background-image: url(/design/titressmenu.gif);
background-repeat: repeat-x;
color: #000000;
cursor: hand;
text-indent:15px;
height: 12px;
}
td.soustitreover {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
background-image: url(/design/titressmenuover.gif);
background-repeat: repeat-x;
color: #000000;
cursor: hand;
text-indent:15px;
height: 12px;
}
td.titreover {
vertical-align:middle;
height:16px;
color: #000000;
cursor: hand;
background-image: url(/design/titremenuover.gif);
background-repeat: repeat-x;
text-indent:5px;
}
.Style1 {font-size: 80%}
</style>





<? // Accueil // ?>
Accueil



<? // Contact ?>
Contact

Livre d'or,
----
Email


<? // Communiquer ?>


Communiquer

MiniForum,
----
BigForum,
----
Rencontres

Bon il ya dautres menus , mais ils ont le meme principe : un tableau princpal avec le titre et un tableau secondaire (visible ou non) avec les liens.
Et mon probleme , c'est que ce menu ne fonctionne pas sous firefox et netscape.
Meme la classe "td.titreover " devrai afficher la main au dessus du bouton , ca ne marche pas ça.

merci.
Messages postés
289
Date d'inscription
vendredi 11 mars 2005
Statut
Membre
Dernière intervention
3 avril 2008
4
Salut!

C'est le IF (en gras) dans ta fonction clickMenu qui gachait tout j'ai fait la correction.


function clickMenu(num)
{

// Booléen reconnaissant le navigateur (vu en partie 2)
isIE = (document.all)?true : false; //IE 6
isNN6 = (document.getElementById)?true:false;
isNN4= (document.layers)?true : false;

// Compatibilité : l'objet menu est détecté selon le navigateur
if (isIE) menu = document.all['menu' + num];
if (isNN6) menu = document.getElementById('menu' + num);
for (i=1;i<=TotalMenu;i++)
{
if ((document.all && document.all['menu'+i]) || (document.getElementById && document.getElementById('menu'+i)))
{
if (i ! = num)
{
if (isIE) menuDiff = document.all['menu'+i];
if (isNN6) menuDiff = document.getElementById('menu'+i);
if (menuDiff.style.display != "none")
{
menuDiff.style.display = "none"
}
}
}
}

Pour ce qui est du curseur, utilise pointer au liei de hand.

A+, Ghislain
Messages postés
544
Date d'inscription
vendredi 5 décembre 2003
Statut
Membre
Dernière intervention
20 mai 2005
1
Bonjour,

ou mieux; les deux :

cursor:hand /* ie4 et 5 */; cursor:pointer /* les autres */
Messages postés
172
Date d'inscription
mercredi 29 janvier 2003
Statut
Membre
Dernière intervention
24 février 2008

ah ok , je savais pas que pointer c'etait la main , je pensai que c'etait la fleche normale.

Merci a vous les gars, maintenant ca fonctionne trés bien sous firefox, netscape et IE , c'est genial. merci a vous.