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 :

innerHTML ne fonctionnant pas avec IE


Sujet :

JavaScript

  1. #1
    Membre exp�riment�
    Avatar de beegees
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par d�faut innerHTML ne fonctionnant pas avec IE
    Bonsoir,

    J'ai un table qui contient plusieurs tbody.

    Un de ces tbody a l'id "co_author"

    Dans ce Tobdy, j'aimerais ins�rer 3 zones de textes, j'appelle donc sur le clic d'un bouton une fonction nomm�e Add_Co_Author.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <td><input type="button" value="Add CO-AUTHOR" onClick="Add_Co_Author();"></td>
    Voici le code de ma fonction :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function Add_Co_Author()
    {
    	if(global_numero_auteur < 13)
    	{
    		document.getElementById('co_author').innerHTML+= '<tr><td class="important">CO-AUTHOR '+global_numero_auteur+'</td></tr><tr><td>FIRST NAME<span class="asterix">*</span></td><td align="left"><input type="text" size="50"></td></tr><tr><td>LAST NAME<span class="asterix">*</span></td><td align="left"><input type="text" size="50"></td></tr><tr><td>INSTITUTION/AFFILIATION<span class="asterix">*</span></td><td align="left"><input type="text" size="50" onfocus="this.style.backgroundColor=\'yellow\'" onblur="this.style.backgroundColor=\'white\'"></td></tr>';
    	}
     
    	global_numero_auteur+=1;
    }
    J'arrive dans la fonction, global_numero_auteur vaut 4 quand j'arrive dans la fonction (je l'ai v�rifi� par une alerte).

    Le probl�me doit venir du innerHTML.

    Auriez-vous une autre solution fonctionnant avec IE ?

    Edit :

    J'ai aussi test� ceci mais sans succ�s :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function Add_Co_Author()
    {
    	contenu_precedent = new String(document.getElementById('co_author').innerHTML);
     
    	//alert(global_numero_auteur);
    	if(global_numero_auteur < 13)
    	{
    		document.getElementById('co_author').innerHTML = contenu_precedent.concat('<tr><td class="important">CO-AUTHOR '+global_numero_auteur+'</td></tr><tr><td>FIRST NAME<span class="asterix">*</span></td><td align="left"><input type="text" size="50"></td></tr><tr><td>LAST NAME<span class="asterix">*</span></td><td align="left"><input type="text" size="50"></td></tr><tr><td>INSTITUTION/AFFILIATION<span class="asterix">*</span></td><td align="left"><input type="text" size="50" onfocus="this.style.backgroundColor=\'yellow\'" onblur="this.style.backgroundColor=\'white\'"></td></tr>');
    	}
    	global_numero_auteur= global_numero_auteur+1;
    }
    En tout cas, avec Firefox, cela fonctionne parfaitement.

    Merci d'avance.

    beegees

  2. #2
    Expert confirm�
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Ao�t 2003
    Messages
    3 684
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : danseur

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 3 684
    Par d�faut
    un ptit parseInt, pour v�rifier que ta variable est bien num�rique?

  3. #3
    Membre exp�riment� Avatar de AcidLines
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2010
    Messages
    198
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 37
    Localisation : France, Finist�re (Bretagne)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Sant�

    Informations forums :
    Inscription : F�vrier 2010
    Messages : 198
    Par d�faut
    Cela ne viendrait pas du "+" a droite de ton innerHTML ? :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    document.getElementById('co_author').innerHTML+=...

  4. #4
    Inactif
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    117
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 117
    Par d�faut
    <TABLE>.innerHTML
    <TBODY>.innerHTML
    <SELECT>.innerHTML
    <TR>.innerHTLM
    provoquent des erreur sous IE, c'est con, mais c'est comme �a.

  5. #5
    Membre exp�riment�
    Avatar de beegees
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par d�faut
    Citation Envoy� par javatwister Voir le message
    un ptit parseInt, pour v�rifier que ta variable est bien num�rique?
    Salut,

    J'ai fait une alerte typeof et il m'indique "number".

    Le probl�me ne viendrait donc pas de l�.

    Encore merci.

    beegees

    Citation Envoy� par AcidLines Voir le message
    Cela ne viendrait pas du "+" a droite de ton innerHTML ? :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    document.getElementById('co_author').innerHTML+=...
    Salut,

    Avec ou sans +, �a ne fonctionne pas.

    J'ai essay� :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    document.getElementById('co_author').innerHTML ='teste';
    Sans succ�s.

    Merci pour ton aide.

    beegees

    Citation Envoy� par Gatsu35 Voir le message
    <TABLE>.innerHTML
    <TBODY>.innerHTML
    <SELECT>.innerHTML
    <TR>.innerHTLM
    provoquent des erreur sous IE, c'est con, mais c'est comme �a.
    Salut,

    Merci pour ta r�ponse.

    Je dois alors utiliser le DOM (cr�ation de TR, TD...) ? ou as-tu une autre solution ?

    Encore merci

    beegees

  6. #6
    Expert confirm�
    Avatar de le_chomeur
    Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2006
    Messages
    3 653
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 3 653
    Par d�faut
    Salut Beegees ;-)

    je ne crois pas qu'il puisse il y avoir plusieurs tbody dans un tableau :-/

    aurais tu un code un peu plus complet de ce que tu souhaites faire ?

  7. #7
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Citation Envoy� par le_chomeur Voir le message
    je ne crois pas qu'il puisse il y avoir plusieurs tbody dans un tableau :-/
    Si, c'est possible.
    Ce sont les thead et tfoot qui doivent �tre uniques
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  8. #8
    Membre exp�riment�
    Avatar de beegees
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par d�faut
    Citation Envoy� par le_chomeur Voir le message
    Salut Beegees ;-)

    je ne crois pas qu'il puisse il y avoir plusieurs tbody dans un tableau :-/

    aurais tu un code un peu plus complet de ce que tu souhaites faire ?
    Salut Chomy,

    Merci pour ta r�ponse.

    Voici ce que je devrais obtenir :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <tr>
    			<td class="important">CO-AUTHOR 1</td>
    		</tr>
    		<tr>
    			<td>FIRST NAME<span class="asterix">*</span></td><td align="left" class="td_abstracts"><input type="text" size="50"	onfocus="this.style.backgroundColor='yellow'" onblur="this.style.backgroundColor='white'"></td>
    		</tr>
    		<tr>
    			<td>LAST NAME<span class="asterix">*</span></td><td align="left" class="td_abstracts"><input type="text" size="50" onfocus="this.style.backgroundColor='yellow'" onblur="this.style.backgroundColor='white'"></td>
    		</tr>
    		<tr>
    			<td>INSTITUTION/AFFILIATION<span class="asterix">*</span></td><td align="left"><input type="text" size="50" onfocus="this.style.backgroundColor='yellow'" onblur="this.style.backgroundColor='white'"></td>
    		</tr>
    Encore merci � toi.

    beegees

  9. #9
    Membre exp�riment�
    Avatar de beegees
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par d�faut
    Citation Envoy� par Bovino Voir le message
    Si, c'est possible.
    Ce sont les thead et tfoot qui doivent �tre uniques
    Merci pour cette confirmation Bovino


    beegees

  10. #10
    Inactif
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    117
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 117
    Par d�faut
    Bon pour r�pondre � tout �a :
    dans un <table> : thead et tfoot sont uniques, et on peut avoir plusieurs tbody.

    comme je l'ai dit les innerHTML p�tent sous IE
    le seul pb c'est qu'il faut passer par le dom, mais tout en conservant la possibilit� de ne pas avoir � trop taper sur le code existant.

    donc je te propose :
    au lieu de faire :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    if(global_numero_auteur < 13)
    	{
    		document.getElementById('co_author').innerHTML+= '<tr><td class="important">CO-AUTHOR '+global_numero_auteur+'</td></tr><tr><td>FIRST NAME<span class="asterix">*</span></td><td align="left"><input type="text" size="50"></td></tr><tr><td>LAST NAME<span class="asterix">*</span></td><td align="left"><input type="text" size="50"></td></tr><tr><td>INSTITUTION/AFFILIATION<span class="asterix">*</span></td><td align="left"><input type="text" size="50" onfocus="this.style.backgroundColor=\'yellow\'" onblur="this.style.backgroundColor=\'white\'"></td></tr>';
    	}
    tu fais
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    addHTML(document.getElementById('co_author'), '<tr><td class="important">CO-AUTHOR '+global_numero_auteur+'</td></tr><tr><td>FIRST NAME<span class="asterix">*</span></td><td align="left"><input type="text" size="50"></td></tr><tr><td>LAST NAME<span class="asterix">*</span></td><td align="left"><input type="text" size="50"></td></tr><tr><td>INSTITUTION/AFFILIATION<span class="asterix">*</span></td><td align="left"><input type="text" size="50" onfocus="this.style.backgroundColor=\'yellow\'" onblur="this.style.backgroundColor=\'white\'"></td></tr>');
    En utilisant ces deux fonctions
    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 setInnerHTML(elm, str) {
    	try {
    		elm.innerHTML = str;
    	} catch(e) {
    		var div = document.createElement('div');
    		div.innerHTML = str;
    		//vide elm
    		while(elm.firstChild) {
    			elm.removeChild(elm.firstChild);
    		}
    		//add child from div to the element
    		while(div.firstChild) {
    			elm.appendChild(div.firstChild);
    		}
    	}	
    }
    function addHTML(elm, str) {
    	var html = elm.innerHTML;
    	setInnerHTML(elm, html + str);
    }

  11. #11
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    dans un array : thead et tfoot sont uniques, et on peut avoir plusieurs tbody.

    y'a des thead des tbody et tfoot dans des arrays ??

    table != array
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  12. #12
    Expert confirm�
    Avatar de le_chomeur
    Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2006
    Messages
    3 653
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 3 653
    Par d�faut
    je ne crois pas qu'il puisse il y avoir plusieurs tbody dans un tableau :-/
    je n'en suis donc pas sur

    Bon sinon je ne pense pas que le probl�me vienne de innerHTML mais plut�t de la string pass� en param�tre...

    Beegees , peux tu fournir en pi�ce jointe un exemple complet ?

  13. #13
    Membre exp�riment�
    Avatar de beegees
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par d�faut
    Salut et merci pour ta r�ponse Gatsu35,

    Vraiment tr�s int�ressant.

    Si je comprends bien, au moment o� il rencontre une erreur, il cr�e le table avec le DOM ?

    Voici ce que �a donne :

    Voir image attach�e

    CO-AUTHOR 4FIRST NAME* sont sur la m�me ligne, penses-tu que l'on peut r�gler ce probl�me ?

    Le plus important serait d'aligner les input text.

    Encore merci pour ce tr�s beau code

    beegees

  14. #14
    Inactif
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    117
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 117
    Par d�faut
    Citation Envoy� par le_chomeur Voir le message
    Bon sinon je ne pense pas que le probl�me vienne de innerHTML mais plut�t de la string pass� en param�tre...
    le pb vient de innerHTML, pour avoir d�j� eu � faire � ce pb durant les 3 dernieres ann�es au moins 20 ou 30 fois

    innerHTML fait p�ter une erreur sous IE quand tu essaye de le modifier sur un �l�ment tel que : table, select, tr, tfoot, tbody, thead

    doit y avoir d'autres �l�ments

  15. #15
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    D'ou ma m�fiance f�rocement ancr�e d'utiliser le innerHTML pour ajouter des �l�ments dynamiqueemnt au pied de biche dans une page HTML.

    L'utilisation du DOM est certes plus lourde, mais au moins �pr�s il n'y a pas de mauvaises surprises. Les navigateurs reconnaissent leurs petits !
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  16. #16
    Expert confirm�
    Avatar de le_chomeur
    Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2006
    Messages
    3 653
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 3 653
    Par d�faut
    Gatsu35 effectivement , renseignement pris , le tbody est en readonly via innerHTML

    Obligation de passer par le dom beegees

  17. #17
    Membre exp�riment�
    Avatar de beegees
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par d�faut
    Citation Envoy� par le_chomeur Voir le message
    Gatsu35 effectivement , renseignement pris , le tbody est en readonly via innerHTML

    Obligation de passer par le dom beegees
    Merci pour la confirmation chomy.

    beegees

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. innerHTML ne fonctionne pas avec FireFox
    Par MedNaceur dans le forum G�n�ral JavaScript
    R�ponses: 11
    Dernier message: 28/12/2009, 17h31
  2. R�ponses: 1
    Dernier message: 25/01/2007, 18h19
  3. evenement onclick ne fonctionne pas avec explorer??
    Par nath-0-0 dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 15/03/2006, 12h13
  4. R�ponses: 7
    Dernier message: 24/01/2006, 11h03
  5. window.resizeTo ne fonctionne pas avec firefox?
    Par FrankOVD dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 28/06/2005, 15h07

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