Fonction JavaScript InnerHtml bug sous IE

Résolu
Const4ntine Messages postés 39 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 11 décembre 2008 - 6 déc. 2008 à 15:28
Const4ntine Messages postés 39 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 11 décembre 2008 - 7 déc. 2008 à 18:11
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

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
7 déc. 2008 à 17:36
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)
3
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
6 déc. 2008 à 15:50
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   
0
Const4ntine Messages postés 39 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 11 décembre 2008
6 déc. 2008 à 17:06
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
0
Const4ntine Messages postés 39 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 11 décembre 2008
6 déc. 2008 à 17:11
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
7 déc. 2008 à 08:37
à 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         
0
Const4ntine Messages postés 39 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 11 décembre 2008
7 déc. 2008 à 16:49
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,
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
7 déc. 2008 à 17:26
>>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         
0
Const4ntine Messages postés 39 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 11 décembre 2008
7 déc. 2008 à 17:44
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,
0
Const4ntine Messages postés 39 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 11 décembre 2008
7 déc. 2008 à 18:11
Merci PetoleTeam,

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

Encore Merci
++
0
Rejoignez-nous