Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : getElementsByName fonctionne nickel sous Firefox mais pas sous IE [ Archives / AU SECOURS !!! ] (Harm_Flav)

lundi 22 novembre 2004 à 22:54:05 | getElementsByName fonctionne nickel sous Firefox mais pas sous IE

Harm_Flav

Bonjour,

j'ai un problème avec la fonction getElementByName sous Internet Explorer. Je tiens à préciser que sous Firefox ça marche très bien.
Alors voilà, j'ai fait un système d'onglets et quand je clique sur un onglet, je le fais apparaître autrement. Alors, pour cela j'utilise les feuilles de style en mettant l'onglet courant dans une balise DIV avec ID="current". Chaque fois que je clique sur un onglet, je lance une fonction JavaScript pour changer les attributs des balises DIV, notamment ID.
Voyez mon code, vous comprendrez mieux j'espère...

<HTML>
<HEAD>
<TITLE>Test Onglets + JavaScript</TITLE>

<!-- Fonctions JavaScript //-->
<SCRIPT LANGUAGE="JavaScript">
<!--
// Fonction qui change l'onglet courant
function changeOnglet(number_onglet) {

var liste_onglets = document.getElementsByName("onglet") ;
var texte_onglets = document.getElementsByName("texte") ;
// ===> Ces deux fonctions merdent sous IE. Quand je demande
// la valeur de liste_onglets.length et texte_onglets.length, ça me
// renvoie pour les deux 0 :-(

for(i=0; i<liste_onglets.length; i++) {
liste_onglets[i].id="";
texte_onglets[i].style.display="none" ;
}
liste_onglets[number_onglet].id="current";
texte_onglets[number_onglet].style.display="" ;
}
//-->
</SCRIPT>

<!-- Feuilles de style CSS //-->
<STYLE TYPE="text/css">

// Tout plein de feuilles de style CSS dont

#header #current {
background-image:url("left_on.gif");
}

#header #current SPAN {
background-image:url("right_on.gif");
color:#333;
padding-bottom:5px;
cursor:default;
}

</STYLE>

</HEAD>

<BODY>

<!-- Génération dynamique des onglets //-->
<DIV NAME="header" ID="header">
<UL>
<LI NAME="onglet" ONCLICK="changeOnglet(0)" ID="current">
<SPAN STYLE="">1<SUP>er</SUP> onglet</SPAN>
</LI>

<LI NAME="onglet" ONCLICK="changeOnglet(1)" ID="">
<SPAN STYLE="cursor:hand">2<SUP>ème</SUP> onglet</SPAN>
</LI>

<LI NAME="onglet" ONCLICK="changeOnglet(2)" ID="">
<SPAN STYLE="cursor:hand">3<SUP>ème</SUP> onglet</SPAN>
</LI>

<LI NAME="onglet" ONCLICK="changeOnglet(3)" ID="">
<SPAN STYLE="cursor:hand">4<SUP>ème</SUP> onglet</SPAN>
</LI>

<LI NAME="onglet" ONCLICK="changeOnglet(4)" ID="">
<SPAN STYLE="cursor:hand">5<SUP>ème</SUP> onglet</SPAN>
</LI>

<LI NAME="onglet" ONCLICK="changeOnglet(5)" ID="">
<SPAN STYLE="cursor:hand">6<SUP>ème</SUP> onglet</SPAN>
</LI>
</UL>
</DIV>

<DIV NAME="texte" STYLE="display:block">one</DIV>
<DIV NAME="texte" STYLE="display:none">two</DIV>
<DIV NAME="texte" STYLE="display:none">three</DIV>
<DIV NAME="texte" STYLE="display:none">four</DIV>
<DIV NAME="texte" STYLE="display:none">five</DIV>
<DIV NAME="texte" STYLE="display:none">six</DIV>

</BODY>
</HTML>

et donc ça ne marche pas...
J'espère que vous réussirez à m'aider

Cordialement,
Flavien

mardi 23 novembre 2004 à 02:18:05 | Re : getElementsByName fonctionne nickel sous Firefox mais pas sous IE

leris

salut,

prends l'habitude d'ecrire ton code en minuscules.

2 élements ne peuvent avoir le même "name" (sauf boutons radio)


<html>
<head>
<title>Test Onglets + JavaScript</title>
<style type="text/css">
.main{
cursor:pointer;
}
</style>
<script type="text/javascript">
<!--
function changeOnglet(nb) {
for(i=1; i<7; i++) {
document.getElementById('texte'+[i]).style.display='none';
document.getElementById('texte'+[nb]).style.display='block';
}
}
//-->
</script>
</head>
<body>
<div name="header" id="header">
<ul>
<li onclick="changeOnglet(1);">
<span class="main">1<sup>er</sup> onglet</span>
</li>
<li onclick="changeOnglet(2);">
<span class="main">2<sup>ème</sup> onglet</span>
</li>
<li onclick="changeOnglet(3);">
<span class="main">3<sup>ème</sup> onglet</span>
</li>
<li onclick="changeOnglet(4);">
<span class="main">4<sup>ème</sup> onglet</span>
</li>
<li onclick="changeOnglet(5);">
<span class="main">5<sup>ème</sup> onglet</span>
</li>
<li onclick="changeOnglet(6);">
<span class="main">6<sup>ème</sup> onglet</span>
</li>
</ul>
</div>
<div id="texte1" style="display:block">one</div>
<div id="texte2" style="display:none">two</div>
<div id="texte3" style="display:none">three</div>
<div id="texte4" style="display:none">four</div>
<div id="texte5" style="display:none">five</div>
<div id="texte6" style="display:none">six</div>
</body>
</html>


++

L.

mardi 23 novembre 2004 à 13:03:49 | Re : getElementsByName fonctionne nickel sous Firefox mais pas sous IE

Harm_Flav

Bonjour,

bon, j'ai essayé de faire comme vous me l'avez dit (en mettant des "NAME" différents) mais ça ne fonctionne toujours pas. Je tiens à rajouter que je dois à tout prix faire un getElement[s]ByName et pas un getElement[s]ById parce que je veux modifier l'ID moi...
J'ai essayé avec getElementByName, mais ça ne marchait pas non plus...
Voici mon code :


<HTML>
<HEAD>
<TITLE>Test Onglets + JavaScript</TITLE>

<!-- Fonctions JavaScript //-->
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
// Fonction qui change l'onglet courant
// J'ai essayé de faire avec :
// onglet = document.getElementByName('onglet' + [i]) ;
// onglet.id = "" ;
// mais ça ne fonctionnait ni sous Firefox ni sous IE
// alors qu'avec la version qui suit, ça ne fonctionne
// qu'avec Firefox et pas sous IE... :-(
function changeOnglet(number_onglet, nb_onglets) {
for(i=0; i<nb_onglets; i++) {
onglet = document.getElementsByName('onglet'+[i]) ;
onglet[0].id = "";
}
onglet = document.getElementsByName('onglet'+[number_onglet]) ;
onglet[0].id="current";
}
//-->
</SCRIPT>

<!-- Feuilles de style CSS //-->
<STYLE TYPE="text/css">
#header #current {
background-image:url("left_on.gif");
}

#header #current SPAN {
background-image:url("right_on.gif");
color:#333;
padding-bottom:5px;
cursor:default;
}
</STYLE>

</HEAD>

<BODY>

<!-- Génération dynamique des onglets //-->
<DIV ID="header">
<UL>

<LI NAME="onglet0" ONCLICK="changeOnglet(0,6)" ID="current">
<SPAN STYLE="">1<SUP>er</SUP> onglet</SPAN>
</LI>
<LI NAME="onglet1" ONCLICK="changeOnglet(1,6)" ID="">
<SPAN STYLE="cursor:hand">2<SUP>ème</SUP> onglet</SPAN>
</LI>
<LI NAME="onglet2" ONCLICK="changeOnglet(2,6)" ID="">
<SPAN STYLE="cursor:hand">3<SUP>ème</SUP> onglet</SPAN>
</LI>
<LI NAME="onglet3" ONCLICK="changeOnglet(3,6)" ID="">
<SPAN STYLE="cursor:hand">4<SUP>ème</SUP> onglet</SPAN>
</LI>
<LI NAME="onglet4" ONCLICK="changeOnglet(4,6)" ID="">
<SPAN STYLE="cursor:hand">5<SUP>ème</SUP> onglet</SPAN>
</LI>
<LI NAME="onglet5" ONCLICK="changeOnglet(5,6)" ID="">
<SPAN STYLE="cursor:hand">6<SUP>ème</SUP> onglet</SPAN>
</LI>

</UL>
</DIV>

</BODY>
</HTML>


voilà, voilà, je vous remercie d'avance pour votre aide car là, je ne sais vraiment plus quoi faire...

Cordialement,
Flavien

mardi 23 novembre 2004 à 16:49:09 | Re : getElementsByName fonctionne nickel sous Firefox mais pas sous IE

chimelpremier

Réponse acceptée !
que je dois à tout prix faire un getElement[s]ByName et pas un getElement[s]ById parce que je veux modifier l'ID moi... ???

Voici un extrait de la recommandation W3C :
4.10 Les éléments avec les attributs 'id' et 'name'
HTML 4 a défini l'attribut name pour les éléments a, applet, form, frame, iframe, img, and map. HTML 4 a également introduit l'attribut id. Ces deux attributs ont été conçus pour être utilisés comme des identificateurs partiels.

En XML, Les identificateurs partiels sont de type ID, et il ne peut y avoir qu'un unique attribut ID par élément.

Notez qu'en XHTML 1.0, l'attribut name de ces éléments est formellement abandonné, et il sera éliminé dans les versions suivantes de XHTML.

Adresse de la page :
[ Lien ]

mercredi 24 novembre 2004 à 12:47:02 | Re : getElementsByName fonctionne nickel sous Firefox mais pas sous IE

Harm_Flav

Bonjour,

merci beaucoup, problème résolu.
Merci à tous pour votre aide.

Cordialement,
Flavien



Cette discussion est classé dans : ie, onglets, onglet, firefox, current


Répondre à ce message

Sujets en rapport avec ce message

Lecteur MP3 pour IE ET FIREFOX [ par daftfunk ] Salut tous,C'est en réalité se que je cherche... un script que les deux nav acceptent .avec liste et commandes d'arret etc..Cela existe t il en JS? do Compatibilité IE/Firefox champ type File [ par blap_psx ] Voilà mon probleme :Je doit controler un formulaire avant envois vers une page php en JS ( pour controler l'extention des fichiers avant de les upload fonction onblur differente IE / firefox [ par floben21 ] Bonjour,J'ai un souci avec la fonction onblur:J'ai un document flash à l'interieur de mon html, qand je clique sur un bouton du flash (telecharger), Convertion script IE vers firefox [ par vinum ] J'ai un script qui fonctionne tres bien sous IE mais pas sous Firefox. En fait j'ai une liste deroulante, lorsque l'utilisateur selectionne un Pays, i Correspondance IE -> Firefox [ par tommy_lapotence ] Bonjour, J'ai un problème de correspondance de code entre IE et Firefox. J'ai un dans un form dont la valeur doit être comprise entre 1 et 50. J'ai Menu Firefox / IE - Ne marche que sous IE [ par Blacknight91titi ] Bonjours a tous.Je pense que ca n'est pas la première question sur ce sujet mais celle ci comporte un plus.En effet j'ai créer un petit menu déroulant Firefox et IE [ par Willow_design ] Bonjour a tous, nouvelle venue sur http://www.javascriptfr.com je cherche quelques reponses a mes probleme de boulot. Gérant une application un peu vi incompatibilité entre IE et Firefox [ par bossun ] salut,j'ai la fonction suivante qui s'exécute parfaitement sur IE mais pas sur FireFox: function verif_Formulaire() { if (document.forms[0].obs saveas sous FireFox [ par crashtest ] Bonjour,alors c'est simple je voudrais faire pareil que le saveas de IE mais sous FireFox voila @++ et merci pour vos réponse.Mes sitewebs (fonction s Redirection qui ne marche point sous IE mais fonctionne sur firefox § [ par Famidoo ] Bonjour, je désire faire une redirection toute bête, ca fonctionne sous firefox parfaitement mais pas sous IE, voici le code : echo "Barre de


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.