begin process at 2012 05 29 14:06:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript Orienté objet (POO)

 > 

Divers

 > 

Javascript et IE 6 ou 7


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

Javascript et IE 6 ou 7

jeudi 22 novembre 2007 à 19:39:03 | Javascript et IE 6 ou 7

memento59800900

Bonsoir à toutes et à tous !
J'ai créé une page web (entre autres) pour mon boulot sous firefox, et seule une partie du javascript fonctionne.
Je pense que le problème se situe au niveau des id qui ne sont pas reconnus par ie dans certaines circonstances.

Comment passer outre ?
Je ne vous cache pas que c'est urgent, alors une idée frétille dans votre esprit ? N'hésiter pas, c'est mauvais pour la santé !


Voici le code source de la page : (remplacez les images du menu si besoin est)
Les effets des boutons du menu ne fonctionneront pas sans les sources JS scriptaculous, mais le code javascript qui pose problème est quand à lui présent sur la page. (il vaut mieux)

(Je précise tout de suite que le javascript est activé sur mon navigateur IE, donc je ne pense pas que le problème puisse venir de là ^^)
---------------------------------------------

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <meta name="language" content="french" />
    <title>Casa Mamma</title>
    <meta name="description" content="Le site des givrés du premier de l'an" />
    <meta name="keywords" content="givrés, dunkerque" />
    <meta name="author" content="MeMento" />


    <link href="style1024.css" rel="stylesheet" type="text/css">
    <!-- PE :  Faire au cas par cas pour les résolution : JAVASCRIPT + PHP pour choisir le style.css  -->
       
    <script src="js/prototype.js" type="text/javascript"></script>
    <script src="js/scriptaculous.js" type="text/javascript"></script>
    <script language="javascript" type="text/javascript">
        //Déclaration des variables globales :
        variable1=1;
        variable2=1;
        variable3=1;
        variable4=1;
       
        titredem1='alexandre';
        titredem2='alexandre';
        titredem3='alexandre';
        titredem4='alexandre';
       
       
        function charger1(){
        if (variable1 == 1){
                titredem1 = document.getElementById("item1").parentNode.parentNode.innerHTML;
                document.getElementById("item1").parentNode.parentNode.innerHTML+='<tr><td ><a href="uncredo.html"onFocus="this.blur()" target="affichage"><img border="0" id="uncredo" onmouseover="new Effect.ShakeVerticalAmortie(this)" onclick="Element.hide(\'uncredo\'); new Effect.Appear(\'uncredo\');" src="images/menu1440/sousmenu/uncredo.jpg"  /></a></td></tr><tr><td><a href="vousconseiller.html"onFocus="this.blur()" target="affichage"><img border="0" id="vousconseiller" onmouseover="new Effect.ShakeVerticalAmortie(this)" onclick="Element.hide(\'vousconseiller\'); new Effect.Appear(\'vousconseiller\');" src="images/menu1440/sousmenu/vousconseiller.jpg"  /></a></td></tr><tr><td><a href="vousaccompagner.html"onFocus="this.blur()" target="affichage"><img border="0" id="vousaccompagner" onmouseover="new Effect.ShakeVerticalAmortie(this)" onclick="Element.hide(\'vousaccompagner\'); new Effect.Appear(\'vousaccompagner\');" src="images/menu1440/sousmenu/vousaccompagner.jpg"  /></a></td></tr>';
                new Effect.Appear('notredemarche');
                variable1*=-1;
            }else{
                document.getElementById("item1").parentNode.parentNode.innerHTML=titredem1;
                new Effect.Appear('notredemarche');
                variable1*=-1;
            }
        }

        function charger2(){
        if (variable2 == 1){
                titredem2 = document.getElementById("item2").innerHTML;
                document.getElementById("item2").innerHTML+='<tr><td><a href="audit.html"onFocus="this.blur()" target="affichage"><img border="0" id="audit" onmouseover="new Effect.ShakeVerticalAmortie(this)" onclick="Element.hide(\'audit\'); new Effect.Appear(\'audit\');" src="images/menu1440/sousmenu/audit.jpg"  /></a></td></tr><tr><td><a href="actionsetoutils.html"onFocus="this.blur()" target="affichage"><img border="0" id="actionsetoutils" onmouseover="new Effect.ShakeVerticalAmortie(this)" onclick="Element.hide(\'actionsetoutils\'); new Effect.Appear(\'actionsetoutils\');" src="images/menu1440/sousmenu/actionsetoutils.jpg"  /></a></td></tr><tr><td><a href="mediatraining.html"onFocus="this.blur()" target="affichage"><img border="0" id="mediatraining" onmouseover="new Effect.ShakeVerticalAmortie(this)" onclick="Element.hide(\'mediatraining\'); new Effect.Appear(\'mediatraining\');" src="images/menu1440/sousmenu/mediatraining.jpg"  /></a></td></tr><tr><td><a href="formation.html"onFocus="this.blur()" target="affichage"><img border="0" id="formation" onmouseover="new Effect.ShakeVerticalAmortie(this)" onclick="Element.hide(\'formation\'); new Effect.Appear(\'formation\');" src="images/menu1440/sousmenu/formation.jpg"  /></a></td></tr>';
                new Effect.Appear('nosservices');
                variable2*=-1;
            }else{
                document.getElementById("item2").innerHTML=titredem2;
                new Effect.Appear('nosservices');
                variable2*=-1;
            }
        }

        function charger3(){
        if (variable3 == 1){
                titredem3 = document.getElementById("item3").innerHTML;
                document.getElementById("item3").innerHTML+='<tr><td><a href="entreprises.html"onFocus="this.blur()" target="affichage"><img border="0" id="entreprises" onmouseover="new Effect.ShakeVerticalAmortie(this)" onclick="Element.hide(\'entreprises\'); new Effect.Appear(\'entreprises\');" src="images/menu1440/sousmenu/entreprises.jpg"  /></a></td></tr><tr><td><a href="institutions.html"onFocus="this.blur()" target="affichage"><img border="0" id="institutions" onmouseover="new Effect.ShakeVerticalAmortie(this)" onclick="Element.hide(\'institutions\'); new Effect.Appear(\'institutions\');" src="images/menu1440/sousmenu/institutions.jpg"  /></a></td></tr><tr><td><a href="formations.html"onFocus="this.blur()" target="affichage"><img border="0" id="formations" onmouseover="new Effect.ShakeVerticalAmortie(this)" onclick="Element.hide(\'formations\'); new Effect.Appear(\'formations\');" src="images/menu1440/sousmenu/formations.jpg"  /></a></td></tr>';
                new Effect.Appear('nosreferences');
                variable3*=-1;
            }else{
                document.getElementById("item3").innerHTML=titredem3;
                new Effect.Appear('nosreferences');
                variable3*=-1;
            }
        }

        function charger4(){
        if (variable4 == 1){
                titredem4 = document.getElementById("item4").innerHTML;
                document.getElementById("item4").innerHTML+='<tr><td><a href="votreequipe.html"onFocus="this.blur()" target="affichage"><img border="0" id="votreequipe" onmouseover="new Effect.ShakeVerticalAmortie(this)" onclick="Element.hide(\'votreequipe\'); new Effect.Appear(\'votreequipe\');" src="images/menu1440/sousmenu/votreequipe.jpg"  /></a></td></tr><tr><td><a href="veniralacasa.html"onFocus="this.blur()" target="affichage"><img border="0" id="veniralacasa" onmouseover="new Effect.ShakeVerticalAmortie(this)" onclick="Element.hide(\'veniralacasa\'); new Effect.Appear(\'veniralacasa\');" src="images/menu1440/sousmenu/veniralacasa.jpg"  /></a></td></tr>';
                new Effect.Appear('nouscontacter');
                variable4*=-1;
            }else{
                document.getElementById("item4").innerHTML=titredem4;
                new Effect.Appear('nouscontacter');
                variable4*=-1;
            }
        }
    </script>
</head>

<body align="center" onLoad="alert(document.getElementById('item1').previousSibling.nodeName)">   



    <table class="cadre" border=1 cellspacing=0 width="70%" height="100%">
        <tr height="142px" >
                <td class="logo" width="30%"><img src="images/logo.jpg" alt="Casa Mamma" /></td>
                <td rowspan=2> <iframe src="accueil.html" style="margin: 0px 0px 0px 0px ; padding:0px 0px 0px 0px ;" class="iframe"  name="affichage" frameborder="0" ></iframe> </td>
        </tr>

        <tr height="80%" class="menu">
            <td align="left">
                <table height="100%" border=0 align="center">   
                    <tr border=0 >
                        <td height=34 class="casemenu">
<!--ICI on met une nouvelle table -->                       
                            <table height="100%" border=0 align="center">
                            <tr>
                                <td id="item1" onclick="charger1()" ><a href="accueil.html"onFocus="this.blur()" target="affichage"><img border="0" id="notredemarche" onmouseover="new Effect.ShakeVerticalAmortie(this)" onclick="Element.hide('notredemarche'); new Effect.Appear('notredemarche');" src="images/menu1440/notredemarche.jpg"  /></a></td>
                            <tr>
                           
                            </table>
                        </td>
                    </tr>
                    <tr>
                        <td height=34 class="casemenu">
                            <table height="100%" border=0 id="item2" align="center">
                           
                            <tr>
                                <td onclick="charger2()" ><a href="accueil.html"onFocus="this.blur()" target="affichage"><img border="0" id="nosservices" onmouseover="new Effect.ShakeVerticalAmortie(this)" onclick="Element.hide('nosservices'); new Effect.Appear('nosservices');" src="images/menu1440/nosservices.jpg"  /></a></td>
                            <tr>
                           
                            </table>
                        </td>
                    </tr>
                    <tr>
                        <td height=34 class="casemenu">
                            <table height="100%" border=0 id="item3" align="center">
                            <tr>
                                <td onclick="charger3()" ><a href="accueil.html"onFocus="this.blur()" target="affichage"><img border="0" id="nosreferences" onmouseover="new Effect.ShakeVerticalAmortie(this)" onclick="Element.hide('nosreferences'); new Effect.Appear('nosreferences');" src="images/menu1440/nosreferences.jpg"  /></a></td>
                            <tr>
                           
                            </table>
                        </td>
                    </tr>
                    <tr>
                        <td height=34 class="casemenu">
                            <table height="100%" border=0 id="item4" align="center">
                            <tr>
                                <td onclick="charger4()" ><a href="accueil.html"onFocus="this.blur()" target="affichage"><img border="0" id="nouscontacter" onmouseover="new Effect.ShakeVerticalAmortie(this)" onclick="Element.hide('nouscontacter'); new Effect.Appear('nouscontacter');" src="images/menu1440/nouscontacter.jpg"  /></a></td>
                            <tr>
                           
                            </table>
                        </td>
                    </tr>
       
        </table>               
            </td>
        </tr>
<!-- onmouseover="new Effect.ShakeVerticalAmortie(this)"-->
       
       
    </table>   
</body>
</html>
jeudi 22 novembre 2007 à 21:57:58 | Re : Javascript et IE 6 ou 7

PetoleTeam

Membre Club
Bonjour,
plusieurs points a signaler

des id qui ne sont pas reconnus par ie dans certaines circonstances.
là faut pas rêver quand même...

Je ne vous cache pas que c'est urgent...
ceci n'est pas un argument pour obtenir des réponses...

...le code javascript qui pose problème...
oui mais quel problème ?

titredem1 = document.getElementById("item1").parentNode.parentNode.innerHTML
pourquoi ne pas mettre un ID au TR précédent ? on utile habituellement...
document.getElementById("item1") en direct

;0)
vendredi 23 novembre 2007 à 00:40:12 | Re : Javascript et IE 6 ou 7

memento59800900

OK.. encore un cyber cowboy...

Tu as soulevé trois points.. (en passant sur le coup du "dire que c'est urgent, c'est pô bien !")

1) D'accord, mis à part le fait que je n'suis sans doute pas assez éveillé à ton goût... en quoi ta remarque fait-elle avancer le chmilblique ?
=> on est d'accord, là ça servait à rien.

ensuite...

2)Aucun problème ? Tu n'as sans doute pas testé le code sous IE... ce qui était le but de la manoeuvre... tampis.

Et enfin...

3) Le coup des deux "parentNode".
(Encore une fois, tu ne l'as pas testé sous IE... quelle perte de temps !)

En mettant l'id sur la balise <table>, IE ne récupère apparement pas l'id (apparement, c'est précisément pourquoi je voulais l'avis d'autre développeurs).
C'est pourquoi, l'utiliser "en direct" comme tu le sousentends si brillament... ne sert à rien.
J'ai testé l'id sur les trois niveaux : table, tr, td. Sans succès.



En espérant avoir assez rapidement l'avis de quelqu'un qui s'y connait. (et d'avance avec mes remerciements les plus sincères :D )

Alex
vendredi 23 novembre 2007 à 07:26:36 | Re : Javascript et IE 6 ou 7

bultez

Membre Club


Bonjour,

    petoleteam++

    >>En espérant avoir assez rapidement l'avis de quelqu'un qui s'y connait
    qui s'y connaisse plus que petoleteam ? sont pas nombreux !

    j'allais faire quasi les mêmes remarques que petoleteam, je ne vais
       donc pas en ajouter.

    ah... si :

    >>En mettant l'id sur la balise <table>, IE ne récupère apparement pas l'id
       ben si...
                <table id="toto">
                    <tr><td>1</td></tr>
                </table>
                <script type="text/javascript">
                    alert(document.getElementById("toto").rows.length);
                </script>

    et lors de la mise au point :
				¡--------¡----------------------------------------------------------¡
|FireFox |regarder la "console d'erreurs" |
| | Outils / Console d'erreurs |
| | |
| | et mieux, télécharger FireBug |
|--------|----------------------------------------------------------|
|Internet|activer le deboggage : Outils/options Internet/Avancés |
|Explorer| dans la liste, sous "Navigation" : décocher |
| | ° Afficher une notification de chaque erreur de script |
| | ° Désactiver le débogage de Scripts (Internet Explorer) |
| | |
| | et mieux, télécharger le Debogger IE |
|--------|----------------------------------------------------------|
|K-Meleon|regarder la "console d'erreurs" |
| | Outils / Console d'erreurs |
|--------|----------------------------------------------------------|
|Opera |regarder la "console d'erreurs" |
| | Outils / Avancé / Console d'erreurs |
|--------|----------------------------------------------------------|
|Safari |regarder Debug / Show JavaScript Console |
| | |
| |modif Fichier "Support:\Documents and Settings\utilisateur|
| |\Application Data\Apple Computer\Safari\Preferences.plist"|
| | y ajouter <key>IncludeDebugMenu</key> |
| | <true/> |
!--------!----------------------------------------------------------!




                Cordialement            Bul         [mon Site]     [M'écrire]
vendredi 23 novembre 2007 à 10:16:56 | Re : Javascript et IE 6 ou 7

memento59800900

Salut.
Merci pour la rapidité de ta réponse ! :D

Par contre le lien vers le debogger IE est cassé..
Je n'arrive toujours aps à voir ce qui cloche dans le code.. Aurais-tu une idée ?


Merci 1000 fois en tous cas !
vendredi 23 novembre 2007 à 10:33:54 | Re : Javascript et IE 6 ou 7

bultez

Membre Club
la page te propose une possibilité de recherche,
et si tu mets "debugger" : nouvelle adresse ?

                Cordialement            Bul         [mon Site]     [M'écrire]
vendredi 23 novembre 2007 à 10:38:58 | Re : Javascript et IE 6 ou 7

bultez

Membre Club
>>Aurais-tu une idée ?
    script écrit de manière illisible...   
            si tu aérais ( retour à la ligne... ) et nous mettais
            uniquement le nécessaire... peut-être...
    et ce qu'a dit PetoleTeam ?

                Cordialement            Bul         [mon Site]     [M'écrire]
vendredi 23 novembre 2007 à 10:50:58 | Re : Javascript et IE 6 ou 7

memento59800900

Dans le javascript :  (bugg au niveau de la ligne 2, celle qui commence par document.getElementById  )

...

uncredo='uncredo';
document.getElementById("item1").innerHTML+='<tr><td ><a href="uncredo.html"onFocus="this.blur()" target="affichage"><img border="0" id="uncredo" onmouseover="new Effect.ShakeVerticalAmortie(this)" onclick="Element.hide('+uncredo+'); new Effect.Appear('+uncredo+');" src="images/menu1440/sousmenu/uncredo.jpg"  /></a></td></tr>';


Dans le code Html :
...

<table height="100%" border=0 id="item1" align="center">
                            <tr>
                                <td onclick="charger1()" ><a href="accueil.html"onFocus="this.blur()" target="affichage"><img border="0" id="notredemarche" onmouseover="new Effect.ShakeVerticalAmortie(this)" onclick="Element.hide('notredemarche'); new Effect.Appear('notredemarche');" src="images/menu1440/notredemarche.jpg"  /></a></td>
                            <tr>
                           
                            </table>


=> C'est au niveau de la ligne javascript, que se situe apparement le problème. ça tourne nikel sous firefox, mais sous IE il bloque à la ligne en question.
J'ai pensé que cela pouvait venir du :  \'  que j'avais mis à la place du simple quote  '  .
J'ai donc créé une variable uncredo.
Je sais que ce n'est aps la façon la plus élégante de coder.. mais bon la je suis en phase de test.. :D

Quand à la question de PetoleTeam, comme je l'ai dit plus haut, le parentNode n'y est apparement pour rien.

Merci encore de t'intéresser à mon cas :D


vendredi 23 novembre 2007 à 12:31:38 | Re : Javascript et IE 6 ou 7

PetoleTeam

Membre Club
Hey !
I'm a poor lonesome Cow-Boy
J'ai lu il y a longtemps que la propriété innerHTML ne faisait pas partie du W3C DOM, mais qu'elle nous aidait bien à modifier le contenu d'élément.

IE est pour une fois plus restrictif, pas de salut en attaquant directement la TABLE avec innerHTML, donc attaque
plutôt la TD en déplaçant l'ID sur celle ci
var O_Td = document.getElementById( "id_de_la_TD");
O_Td.innerHTML = "le contenu de la cellule";


Le must serait de respecter les recommandations du W3C, mais il faudrait en écrire bien plus avec les appendChild et autres...

Mais ce ne sont que des écrits de...
I'm a poor lonesome Cow-Boy
;0°)
vendredi 23 novembre 2007 à 12:31:47 | Re : Javascript et IE 6 ou 7

bultez

Membre Club
déjà, <table><tbody><tr><td>.....</td></tr></tbody></table>
                et il me semble bien que IE tienne au tbody.
d'ailleurs innerHTML, il vaut mieux éviter,
        :  insertRow,  insertCell,  createElement,  appendChild...
exemple ici


                Cordialement            Bul         [mon Site]     [M'écrire]

1 2

Cette discussion est classée dans : document, getelementbyid, innerhtml, effect, appear


Répondre à ce message

Sujets en rapport avec ce message

Probleme avec IE [ par theopil ] Voila sous firefox sa marche niquel , mes pas sous IE , et j tourne en rond et je ne trouve pas l'erreurfunction affi Barre de progression Javascript [ par AurelR ] BonjourActuellement j'essaye d'envoyer un fichier sur mon serveur (sa j'y arrive) mais j'aimerais afficher une barre de progression.En cherchant un pe document.body vs document.write [ par arnaultp ] Bonjour à tous!Je n'arrive toujours pas très bien à comprendre ce que font document.body et document.write.Cela fait seulement 2 semaines que je code Probleme avec IE et Opera [ par SuperChouquette ] Bonjour, je suis débutant et je tente de faire un script qui permette d'effectuer une recherche dans une liste, celui- ci fonctionne parfaitement sous pb de getElementById [ par kidpigeyre ] for(var i=0;i { document.getElementById("tete")[i].innerHTML=document.getElementById("tete")[i].innerHTML.substr(0,3); }voila ça ça ne ma obj.innerHTML [ par fgingat ] Bonjour à tous .. Voila mon premier poste concerne un soucis de comprehension de la methode de fonctionnement de obj.innerHTML  A savoir sur une page Problème avec la fonction switch [ par stiml ] Bonjour, Je sais qu'on a posté plusieurs questions sur ce sujet mais je n'est pas trouvée ma réponseMerci de m'éclairer sur cette fonction qui ne fonc couleur, radiobutton, onclick [ par gabs77 ] slt, j'ai un souci avec mon formulairej'ai un formulaire de base auquel j'ai des formulaires spécifiques par rapport a des choix effectuer dans ce for Pb AJAX sous IE [ par Emcy ] bonjour,j'ai créé un mini projet où j'ai 3 fichiers :- 1 fichier html : pour affichier ma page- 1 fichier javascript : script lié à ma page html- 1 fi


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,702 sec (4)

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