IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

mon menu ne marche pas avec IE6


Sujet :

JavaScript

  1. #21
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Fais plutôt une demande dans le forum CSS parce que là je n'ai plus d'idée !

    Bon courage,

    ERE

  2. #22
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 204
    Par défaut
    merci de ton aide en tout cas

  3. #23
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 162
    Par défaut
    Bonjour,

    Quand je regarde le source de la page essaie.php, il n'y a pas de lien vers un .js externe ou de <SCRIPT>...</SCRIPT> particulier, du coup, il n'y a pas d'initialisation de ton menu...

    J'imagine que tu as oublié d'intégrer le javascript d'initialisation du menu parmi tes tests ?

    Sinon, par rapport à l'initialisation du script, je changerai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.onload = function(){ ... }
    par une fonction du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    function addEvent(obj,event,fct)
    {
    	if (obj.attachEvent)
    		obj.attachEvent('on' + event,fct);
    	else obj.addEventListener(event,fct,true);
    }
     
    function removeEvent(obj,event,fct)
    {
    	if (obj.detachEvent)
    		obj.detachEvent('on'+event,fct);
    	else obj.removeEventListener(event,fct,true);
    }
     
    addEvent(document,load,initMenu);
     
    function initMenu()
    {
    ...
    }
    A+

  4. #24
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 204
    Par défaut
    J'ai suivi ton conseil mais ca ne marche toujours pas. J'ai rajouté la ligne et modifié le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    function gebcn(c) {
     
    	if (document.getElementsByClassName) {
    		return document.getElementsByClassName(class);
    	}
    	else {
    		var all = document.getElementsByTagName("*"),
    		res = [];
    		for (var i=0,l=all.length;i<l;i++) {
    			if (all[i].className == class) {
    				res.push(all[i]);
    			}
    		}
    		return res;
    	}
    }
     
    sfHover = function() {
    	var sfEls = gebcn("deroulant");
     
    	for (var i=0; i<sfEls.length; i++) {
    		sfEls[i].onmouseover = function() {
    			this.getElementsByTagName("ul")[0].style.display = "block";
    		};
    		sfEls[i].onmouseout = function() {
    			this.getElementsByTagName("ul")[0].style.display = "none";
    		};
    	}
    };
     
     
     
    function addEvent(obj,event,fct)
    {
    	if (obj.attachEvent)
    		obj.attachEvent('on' + event,fct);
    	else obj.addEventListener(event,fct,true);
    }
     
    function removeEvent(obj,event,fct)
    {
    	if (obj.detachEvent)
    		obj.detachEvent('on'+event,fct);
    	else obj.removeEventListener(event,fct,true);
    }
     
    addEvent(document,load,initMenu);
     
    function initMenu()
    {
    ...
    }

  5. #25
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 162
    Par défaut
    Hmmm, tu as bien rempli le corps de la fonction initMenu ? Parce que c'était un exemple ce que j'ai mis comme code, à toi de remplir la fonction avec ton traitement d'initialisation du menu...

    Sinon, mets un alert(); dans ta fonction d'initialisation du menu pour voir si la fonction est bien exécutée au chargement du document.

  6. #26
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 204
    Par défaut
    desole je debute et ce code est un peu beaucoup compliqué a mes yeux lol.

  7. #27
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 162
    Par défaut
    Ok, essaye ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    function gebcn(c) {
     
    	if (document.getElementsByClassName) {
    		return document.getElementsByClassName(c);
    	}
    	else {
    		var all = document.getElementsByTagName("*"),
    		res = [];
    		for (var i=0,l=all.length;i<l;i++) {
    			if (all[i].className == c) {
    				res.push(all[i]);
    			}
    		}
    		return res;
    	}
    }
     
    function sfHover() {
    	var sfEls = gebcn("deroulant");
     
    	for (var i=0; i<sfEls.length; i++) {
    		sfEls[i].onmouseover = function() {
    			this.getElementsByTagName("ul")[0].style.display = "block";
    		};
    		sfEls[i].onmouseout = function() {
    			this.getElementsByTagName("ul")[0].style.display = "none";
    		};
    	}
    };
     
     
     
    function addEvent(obj,event,fct)
    {
    	if (obj.attachEvent)
    		obj.attachEvent('on' + event,fct);
    	else obj.addEventListener(event,fct,true);
    }
     
    function removeEvent(obj,event,fct)
    {
    	if (obj.detachEvent)
    		obj.detachEvent('on'+event,fct);
    	else obj.removeEventListener(event,fct,true);
    }
     
    addEvent(document,"load",sfHover);

  8. #28
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 204
    Par défaut
    c'est tout le code ou un partie du code?

  9. #29
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 162
    Par défaut
    C'est tout le code de ton fichier javascript.js

  10. #30
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 204
    Par défaut
    alors ca ne marche toujours pas

    http://www.sandrineetgwen.fr/essaie.php

  11. #31
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 162
    Par défaut
    La dernière ligne est à modifier :
    addEvent(document,"load",sfHover);
    en
    addEvent(window,"load",sfHover);

    Le code complet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    function gebcn(c) {
    	if (document.getElementsByClassName) {
    		return document.getElementsByClassName(c);
    	}
    	else {
    		var all = document.getElementsByTagName("*"),
    		res = [];
    		for (var i=0,l=all.length;i<l;i++) {
    			if (all[i].className == c) {
    				res.push(all[i]);
    			}
    		}
    		return res;
    	}
    }
     
    function sfHover() {
    	var sfEls = gebcn("deroulant");
     
    	for (var i=0; i<sfEls.length; i++) {
    		sfEls[i].onmouseover = function() {
    			this.getElementsByTagName("ul")[0].style.display = "block";
    		};
    		sfEls[i].onmouseout = function() {
    			this.getElementsByTagName("ul")[0].style.display = "none";
    		};
    	}
    }
     
     
     
    function addEvent(obj,event,fct)
    {
    	if (obj.attachEvent)
    		obj.attachEvent('on' + event,fct);
    	else obj.addEventListener(event,fct,true);
    }
     
    function removeEvent(obj,event,fct)
    {
    	if (obj.detachEvent)
    		obj.detachEvent('on'+event,fct);
    	else obj.removeEventListener(event,fct,true);
    }
     
    addEvent(window,"load",sfHover);

  12. #32
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 204
    Par défaut
    alors du coup ca marche mais par contre j'ai une erreur

    this Get Element..... est null ou n'est pas un objet

  13. #33
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 162
    Par défaut
    Cette erreur survient au survol de l'item Contact, qui ne contient pas d'enfants "UL", et donc la fonction de onmouseover lève une erreur...

    Il faut modifier la fonction sfHover :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function sfHover() {
    	var sfEls = gebcn("deroulant");
    	
    	for (var i=0; i<sfEls.length; i++) {
    		sfEls[i].onmouseover = function() {
    			if (this.getElementsByTagName("ul").length>0)	
    				this.getElementsByTagName("ul")[0].style.display = "block";
    		};
    		sfEls[i].onmouseout = function() {
    			if (this.getElementsByTagName("ul").length>0)
    				this.getElementsByTagName("ul")[0].style.display = "none";
    		};
    	}
    }

  14. #34
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 204
    Par défaut
    en fait ca marche mais avec un autre script en fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    window.onload = function() {
        var menu = document.getElementById("menuHorizon");
        var sfEls = menu.getElementsByTagName("li");
        for (var i=0; i<sfEls.length; i++) {
            if (sfEls[i].className == "deroulant") {
                sfEls[i].onmouseover = function() {
                    var uls = this.getElementsByTagName("ul");
                    if (uls.length > 0) {
                        uls[0].style.display = "block";
                    }
                    var imgs = this.getElementsByTagName("img");
                    if (imgs.length > 0) {
                        var img = imgs[0];
                        var tmp = img.src; img.src = img.alt; img.alt = tmp;
                    }
                };
                sfEls[i].onmouseout = function() {
                    var uls = this.getElementsByTagName("ul");
                    if (uls.length > 0) {
                        uls[0].style.display = "none";
                    }
                    var imgs = this.getElementsByTagName("img");
                    if (imgs.length > 0) {
                        var img = imgs[0];
                        var tmp = img.src; img.src = img.alt; img.alt = tmp;
                    }
                };
            }
        }
    };
    et j'ai en posant une question dans la partie css ils m'ont trouvé une erreur et ca y est tout marche niquel sans erreur de script.

    En tout cas merci de votre aide. heureusement que vous étiez la quand même.
    merci merci

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [Prototype] element.update ne marche pas avec IE6 si le contenu contient <li>
    Par ilalaina dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 23/10/2009, 09h48
  2. Mon menu ne marche pas
    Par lancegfx dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 05/03/2009, 19h22
  3. Mon prog ne marche pas avec Cygwin
    Par AlKoLiK dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 12/06/2007, 02h29
  4. Mon site ne marche pas avec FIREFOX
    Par xgr8 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 21/09/2006, 23h18
  5. [xhtml][css] bouton du form ne marche pas avec IE6
    Par chinouk dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 14/06/2005, 15h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo