Fonction JavaScript InnerHtml bug sous IE [Résolu]

Signaler
Messages postés
39
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
11 décembre 2008
-
Messages postés
39
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
11 décembre 2008
-
Bonjour,

Je débute sous Javascipt, j'ai fais tout de meme une fonction qui me permet demodifier le texte lorsque l'on survole les images.

ma fonction marche très bien sous Firefox, voir le lien :

http://www.senteurszen.com/test/Bougies/BLF.php

Mais ne marche pas du tout sous IE.

Où est mon erreur ?

Voici la fonction JavaScript :

<script type= "text/javascript">
        function changetext(id,choix) {
                 if(choix==1){
                    area = document.getElementById(id);
                    area.innerHTML=" Bougie Authentique en Verre avec couvercle galva
<li>baume des selliers</li><li>savon des lavandières</li><li>colle des écoliers</li><li>cire des antiquaires</li>";
                }
                if(choix == 2){
                    area = document.getElementById(id);
                    area.innerHTML= " Bougie Mini-Contenant
<li>Orange Tonique</li><li>Barbe à Papa</li><li>Monoï Tiaré</li><li>Griotte Fruits Rouges</li><li>Anis Badiane</li> <li>Vanille Tonka</li><li>Cannelle Bergamote</li><li>Ylang Magnolia</li><li>Chèvrefeuille Fleur d'Oranger</li><li>Mangue Coco</li><li>Mûre Griotte</li>Verrerie Cylindrique
<li>Couleur Bleu</li><li>Couleur Rose</li><li>Couleur Orange</li><li>Couleur Rouge</li>";
                }
                if(choix == 3){
                    area = document.getElementById(id);
                    area.innerHTML=" Bougie Pot Céramique-Osier
<li>Pêche de Vigne</li><li>Fraises de Jardin</li><li>Fleur de Pommier</li>";
                }
                if(choix == 4){
                    area = document.getElementById(id);
                    area.innerHTML=" Bougie Lounge Boite Cylindrique
<li>Rhum Tabac</li><li>Vanille Epicée</li><li>Moka Tonka</li><gras>Bougie Lounge Pot Céramique

<li>Rhum Tabac</li><li>Vanille Epicée</li><li>Moka Tonka</li>";
                }
                if(choix ==5){
                    area = document.getElementById(id);
                    area.innerHTML="La possibilité d’une atmosphère nouvelle

La bougie offre aujourd'hui une extraordinaire richesse d'utilisation. Éclairante dans un premier temps, elle sait de par sa taille créer des ambiances différentes. Comme pour faire revivre la douce atmosphère des feux de cheminée d'antan, elle devient tour à tour chaleureuse, décorative, propre au recueillement où à l'échange convivial.

Parfumante, elle donne une dimension nouvelle à sa vocation première en la renforçant subtilement. Outre notre sens visuel, la bougie fait appel à nos capacités olfactives et développe des atmosphères uniques comme autant de réminiscences de notre personnalité, de notre vie …

Et pour respecter ces moments qui vous sont propres, Bougies La Française œuvre avec les plus grands spécialistes français du parfum; c'est en effet de Grasse que proviennent les essences, les fragrances qui sauront se développer en parfaite symbiose avec la flamme.

";
                }
}
</script>

Code pour l'image (un exemple):

[Retro.php
            ]

9 réponses

Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
Bonjour,
 
Rappels IMPORTANTS
- IExplorer est capable de substituer un id à un name, et inversement.
- Un id doit être unique.
- Eviter d'utiliser des
mots réservés.

Mets un alert( area.tagName) dans le corps de ta fonction
et tu auras la surprise de voir s'afficher META

c'est en fait ta une
balise
<META
NAME="Description" CONTENT="Bougies...
qui piège dans ce cas IExplorer

Change l'id du DIV...

;O)
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
10
bonjour
ah bon... ?
j'ai essayé avec FF et IE, et même asepct à priori,
mais loin d'avoir tout testé....
tu as des messages d'erreurs ? un dysfonctionnement ? quoi ? où ?
et :
Chrome
, contrôler page actuelle / Options pour développeurs
/ Console Javascript, ----
FireFox
, Outils / Console d'erreurs
et mieux : télécharger mon Site] [M'écrire] Bul   
Messages postés
39
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
11 décembre 2008

Grace au débugueur j'ai trouvé et modifié quelques erreur, mais apparement ce n'était pas le problème.

J'ai toujours une police très moche sous IE et un javaScript qui ne marche pas,

IE me met l'erreur :

ligne 256   (qui correspond à if(choix==5){)
Erreur d'excution inconnue
Code 0
Messages postés
39
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
11 décembre 2008

La fonction qui me permet de modifier le texte lorsque l'on survole les images ne marche pas sous IE, il me met l'erreur ci dessus
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
10
à mon avis ce serait plutôt sur la ligne suivante...
  area = document.getElementById(id);

 peut-être du au onmouseover='changetext("description",5 )'
       ou <élément id="description"...> qui n'existe pas...

c'est d'ailleurs un problème de délai....

si on évite de mettre la souris sur la page avant que les images
   ne soient affichées.... plus d'erreurs ensuite

un window.onload=function() { ... }  à ajouter ?
un onmouseover déclenché trop tôt ?
...

Cordialement

          [mon Site] [M'écrire] Bul         
Messages postés
39
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
11 décembre 2008

Salut,

En mettant la bar debug sur IE, j'ai vu qu'il y avait une erreur pour toutes les actions Javascript, soit pour chaque choix.

L'élément id="description" existe sour une balise div fermé, séparé de la fonction, j'avais vu sous IE qu'il valait mieux séparer les éléments appelé et fonction.

Aurais tu une autre piste à exploiter ?

Cordialement,
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
10
>>j'avais vu sous IE qu'il valait mieux séparer les éléments appelé et fonction.
?? pas compris...
je n'ai pas du tout contrôler ce qui était fait, ce queje constaté
c'est qui si on laisse aux images le temps de s'afficher
( ou presque ) ça baigne
je ne sais d'ailleurs pas ce que tu fais, parce que afficher la source
avec IE... c'est difficile !! ( et ça;... faut l'faire )

aujourdh'hui ( mais avec les autres navigateurs aussi ! ) on préfère
dissocié le js, le css, le html.... pour "plus de clarté" ( ?!? )

j'aurais donc fait ( sans avoir compris/régardé pourquoi ça plante ! )

window.onload= function() {
   pour tous les éléments voulus
   { élément .on évênement =function() {
     { le boulot à faire....
     }
   }
}

          [mon Site] [M'écrire] Bul         
Messages postés
39
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
11 décembre 2008

Dans l'aide de débuggage de Windows sour IE, j'avais vu qu'il fallait mieux dissocié ma fonction Javascript dans une autre Balise que celle où l'on affichait le texte avec InnerHtml.

je ne sais d'ailleurs pas ce que tu fais, parce que afficher la source
avec IE... c'est difficile !! ( et ça;... faut l'faire ) ??? Je n'ai pas compris

aujourdh'hui ( mais avec les autres navigateurs aussi ! ) on préfère
dissocié le js, le css, le html.... pour "plus de clarté" Mon Css et mon html est dissocié, mon javascript est dans une balise Script. Et j'utilise une fonction pour JavaScript

window.onload= function() {
   pour tous les éléments voulus
   { élément .on évênement =function() {
     { le boulot à faire....
     }
   }
}
Je débute totalement en JavaScript, je n'ai donc aucune connaissance sur ce texte Java ci dessus, pourrais tu me le developper un peu plus pour que je puisse tester. De plus, quand je passe sur mes images et donc actif ma fonction java, mes images sont toujours bien téléchargé, par ailleurs le java est inséré dans une balise et non associé à l'image. Est ce vraiment necessaire d'attendre que les images soient bien chargé ?

Bien Cordialement,
Messages postés
39
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
11 décembre 2008

Merci PetoleTeam,

C'était bien ça, j'ai changé le nom de mon ID et ça marche nickel sous IE.

Encore Merci
++