Rechercher : dans
Par :

(JS) Bug avec innerHTML sous IE

Dernière réponse le 10 fév 2009 à 15:13:43 karakopopol, le 15 jun 2007 à 16:10:30 
 Signaler ce message aux modérateurs

Bonjour.

J'ai un soucis en javascript avec la méthode 'innerHTML' :
J'essaye d'attribuer une série de choix possible à un liste déroulante. J'ai donc dans une variable javascript une chaine de caractères comprenant tous ces éléments. Lorsque que je veux affecter les options à la liste déroulante ca se passe très bien sous Mozilla, par contre sous IE ca bugge : il me vire le premier tag 'option' et donc rien ne s'affiche!!!
Je suis en train de m'arracher les cheveux!!!

Le code est surement plus explicite :

HTML :
<select name='spec' ID='spec'></select>

JS :
newoptions = '<option value="1">Val1</option><option value="2">Val2</option><option value="3">Val3</option><option value="4">Val4</option>';
document.getElementById('spec').innerHTML = newOptions;


Résultats :
Sous Mozilla :
<select name='spec' ID='spec'><option value="1">Val1</option><option value="2">Val2</option><option value="3">Val3</option><option value="4">Val4</option></select>

Sous IE :
<select name='spec' ID='spec'>Val1</option><option value="2">Val2</option><option value="3">Val3</option><option value="4">Val4</option></select>


Si quelqu'un a la solution, je suis preneur!
Merci!!!

Configuration: Windows XP
Firefox 1.5.0.12

Meilleures réponses pour « (JS) Bug avec innerHTML sous IE » dans :
Désinstaller IE 8 VoirDésinstallation d'IE 8 Vous avez installé IE8 pour le tester et vous souhaitez désormais revenir à une version précédente ? Voici la procédure à suivre pour les OS suivants : Windows Vista Windows XP Windows Vista Ouvrir le...
Javascript - Librairies d'effets pour vos images VoirAu gré de vos explorations du web, vous avez vu de superbes effets de présentation des images. Et ça vous plairaît bien de pouvoir proposer les mêmes à vos visiteurs. Voici quelques solutions en Javascript couplées à des CSS. Elles sont plus...
Javascript - Centrer verticalement une page web VoirPour centrer verticalement une page web, impossible de s'en sortir en css. Une solution bien pratique : JavaScript. 1. Le fichier .js 2. La page .html 3. Utilisation 4. Inconvénients 5. Rappel Merci à Dalida pour la source du...
Javascript - Introduction au langage Javascript VoirQu'est-ce que le Javascript? Le Javascript est un langage de script incorporé dans un document HTML. Historiquement il s'agit même du premier langage de script pour le Web. Ce langage est un langage de programmation qui permet d'apporter des...
Javascript - Les événements VoirQu'appelle-t-on un événement? Les événements sont des actions de l'utilisateur, qui vont pouvoir donner lieu à une interactivité. L'événement par excellence est le clic de souris, car c'est le seul que le HTML gère. Grâce au Javascript il est...
Javascript - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. En Javascript, les noms de variables peuvent être aussi long que l'on désire,...

1

karakopopol, le 16 jun 2007 à 09:15:49

Personne?

Répondre à karakopopol

2

MademoiselleL, le 10 jui 2007 à 17:17:38
  • +2

Je sais pas si tu cherches encore...

c'est un bogue connu sur IE.
Microsoft a fait une excellente page de solution :
http://support.microsoft.com/kb/276228/fr

bonne chance

Répondre à MademoiselleL

3

mardiros, le 15 oct 2007 à 12:03:51

Bonjour,
et merci pour l'info,
Le bug est tout de même daté du 12 mai 2003,

et ils peuvent ajout IE7 à la liste ( qui s'arrête a IE5.5)

Alors que le web tant a être "2.0" qui fait de javascript la "grosse charnière", microsoft laisse
trainé des bugs vieux de plus de 4 ans...


Quelle réactivité de la part de l'entreprise n°1 mondial du logiciel, et comme ils disent

"Wouahooooo"

mardiros

Répondre à mardiros

4

vdumontier, le 11 aoû 2008 à 18:27:18

Une honte, ça fait une heure que je cherche pour un truc aussi nul! Bravo Microsft! félicitation!

Répondre à vdumontier

5

Longshot, le 8 oct 2008 à 15:31:36

Pareil ;)

Répondre à Longshot

6

Miss, le 18 nov 2008 à 23:17:13

Tout pareil -__-
Quand te decideras tu a mourrir IE ???

Répondre à Miss

7

StrasGus, le 6 jan 2009 à 12:18:08

Mouais ben je suis super content !!!!

Je vient de coder une page PHP de merde pendant plus de 10 heures

17 fonctions js
9 fonctions php
4 requêtes sql

tout ça pour voir que mes innerHTML ne fonctionne pas sur IE

En fait c'est un formulaire qui verifie tout un tas de chose, et s'il retourne une erreur (aussi bien js que php) il l'ecrit dans des <Span> qui sont à coté de leur champ de texte qui a fait retourner l'erreur...

Ex

[Camp de texte "peudo"] Le pseudo doit comporté plus de 6 caracères 'lors de la saisie en JS

ou encore

[Camp de texte "peudo"] Le pseudo existe déjà 'lors du rechargement pour erreur en php

VA CHIER IE

Maintenant c'est partit pour de nouvelle recherches pour trouver la solution !! MERDE !!!

Répondre à StrasGus

8

AureusMS, le 12 jan 2009 à 21:43:27

Bonjour,

Je ne sais pas si tu as trouvé la réponse à ton problème mais il suffit d'encapsuler ton selest dans une div. En clair (et uniquement pour IE), a chaque changement il faut recréer ton select que tu injectes dans la div avec innerHTML. C'est pas très pratique mais chez moi cela marche.
Bon courage et pour les autres lecteurs => utiliser firefox ou Opera ou les autres qui fonctionne mieux que IE

Répondre à AureusMS

9

Matt, le 9 fév 2009 à 16:22:52
  • +2

Bonjour,

Merci pour la réponse précédente, ca fonctionne nikel.

Néanmois :

J'ai essayé avec un <div id="monid"></div>, pour ceux qui ne le saurait pas, c'est faisable avec un <span>.

Son avantage est qu'il ne compromet pas autant la css qu'un <div>.

Les éléments <div> s'affiche en mode "block" par defaut (voir un cours de css), tandis qu'un <span> s'affiche en mode "inline".

Donc, pas de retouches css à faire dans le cas où le formulaire est style via les css.

Il est vrai que Microchiotte Windows son copain IE sont pas au top du top mais je vous rappelle qu'un bon développeur se doit de faire en sorte qu'un site soit accessible avec les principaux navigateurs du marché.

Matt

Juste pour rire :

Démarrer Windows sans clavier PS/2 (pas avec USB) vous donne "Keyboard not found -> Press F1 to continue..."

(Faite le test c'est véridique).

Répondre à Matt

10

 FraGG, le 10 fév 2009 à 15:13:43

Bien je me sent moins seul.... en fait j'ai comme d'autres ici un formulaire et dynamiquement en fonctions des champs que je "surveille" mon javascript ajoute un "div" contenant l'erreur a afficher.

Je récupère le "nodeParent" et cela marche sans problème sous tous navigateur sauf sous IE si le nodeParent est un <p></p> (alors que ça marche avec un div et un td)

Bon bah je vais chercher avec quelles autres balises cela peut marcher car avec un span comme parent j'ai le même bug je ne peut pas spécifier le innerHTML...

Bug vieux de 2003.. et la beta 2 d'IE8 l'a encore ! \o/


---------

Pour répondre a Matt, cette erreur c'est une erreur du BIOS, une puce sur ta carte mère, ça n'a aucun rapport avec windows. T'aurais bien pu démarrer linux ou autre chose ;)

Me suis retrouvé bien con y'a des années quand j'ai grillé mon controlleur clavier (bon c'était ma faute fallais pas le toucher allumé avec quelque chose de métallique......) et qu'il m'a fait ça.... (et pas de ports USB a l'époque, obligé de racheter une CM)

Répondre à FraGG