begin process at 2010 03 22 04:48:13
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Javascript

 > 

Archives

 > 

AU SECOURS !!!

 > 

getElementsByName fonctionne nickel sous Firefox mais pas sous IE


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

getElementsByName fonctionne nickel sous Firefox mais pas sous IE

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ée 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...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,140 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales