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 :

erreur IE innerHTML ?


Sujet :

JavaScript

  1. #1
    Membre averti Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Points : 439
    Points
    439
    Par défaut erreur IE innerHTML ?
    J'ai une erreur dans cette ligne (unique ligne que j'ai rajouté et qui fait renvoyer une erreur depuis) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("id_acc").innerHTML+="<tr id='id_"+champ.name+"'><td class='td_controle' id='id_"+champ.name+"_val'></td><td class='td_statut' id='id_"+champ.name+"_img'></td></tr>";
    Je ne vois aucune erreur...mozilla non plus. Mais IE OUI.

  2. #2
    Membre régulier Avatar de sorenson
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 84
    Points
    84
    Par défaut
    Bonjour speedev,

    pour t'aider, j'ai trois propositions :

    - Peut-être ta version de Explorer est en cause, essai :
    (avec détection du navigateur tu utilises all pour Explorer et getElementById
    pour Firefox.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if(navigator.appName=="Netscape"){
    var ObjCadre=document.getElementById["id_acc"];
    }else{
    var ObjCadre=document.all["id_acc"];
    }
    ObjCadre.innerHTML+=...;
    - ou alors essai de récupérer le contenu de ton DIV autrement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var contenuDiv=document.getElementById["id_acc"].innerHTML;
    var nouveauContenu=contenuDiv+...;
    document.getElementById("id_acc").innerHTML=nouveauContenu;
    - enfin, je te rapelle que innerHTML ne devrait plus être utilisé. Il vaut mieux
    utiliser DOM.


  3. #3
    Membre averti Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Points : 439
    Points
    439
    Par défaut
    Tutut... j'utilise pas les DOM car IE ne les reconnait pas parfaitement bien. (voir article ci-dessous) InnerHTML fonctionne mieux pour le moment. Tant que les navigateurs ne sont pas redéveloppés sur un bon standart je conserve les premières méthodes et teste mon code sur chaque navigateur.

    Mon erreur ici viendrait plutôt du fait que mon id est situé sur un tableau ne contenant que du vide. Je sais qu'IE n'aime pas trop les id sur des éléments autre que les div ou cellules.
    J'utilise aucun DIV exceptionnellement.
    Document.all n'est à utiliser QUE pour DIV et uniquement!

    Petit article:

    Le Document Object Model (DOM)

    Le Document Object Model est un principe consistant à représenter le navigateur et le document qui y est affiché comme une hiérarchie d'objets (voir éventuellement la section programmation orientée objet pour comprendre le concept objet), possèdant des propriétés intrinsèques et auxquels ont peut accéder en décrivant la hiérarchie qui mène à chaque objet.

    Toutefois, le Document Object Model ayant été implémenté de manière "sauvage" dans les deux navigateurs concurrents (ie Netscape et Internet Explorer), la hiérarchie et les propriétés diffèrent quelque peu entre les deux navigateurs.

    j'ai déboggué un peu mon code, apparement la vérité est ailleurs.
    je posterai la solution.

    Merci

  4. #4
    Membre régulier Avatar de sorenson
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 84
    Points
    84
    Par défaut
    pourquoi n'utilises tu pas les objets DIV ?
    et pourquoi doit-on utiliser All avec DIV uniquement ?

    ma question n'es pas agressive, ça m'intéresse pour ma culture personnelle.

  5. #5
    Membre averti Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Points : 439
    Points
    439
    Par défaut
    Je les utilise pour structurer et positionner des blocs de données.
    Tel est l'inérêt des DIV, créer une architecture.
    Pour charger un contenu dynamiquement avec la technologie Ajax, je préfère exceptionnellement ici utiliser du innerHTML dans des cellules.

    il s'agit d'une interface de gestion SAV que je développe pour ma boîte et les tableaux sont ce qu'il y a de plus soft et de plus adaptés à des données dynamiquement chargées par ajax.
    Si j'utilisais des div (il en faudrait beaucoup!), il me faudrait utiliser les fonctions de manipulations de chaine, et c'est inutile si on utilise un tableau.

  6. #6
    Membre régulier Avatar de sorenson
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 84
    Points
    84
    Par défaut
    ok, merci pour la réponse.

  7. #7
    Membre averti Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Points : 439
    Points
    439
    Par défaut
    ben ya pô d'koua

  8. #8
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    bonjour,

    je pense que ton erreur vient du fait que tu cherches à insérer une ligne en utilisant innerHTML.
    Utilise plutôt la méthode cdécrite ici :
    http://javascript.developpez.com/faq/?page=Table

  9. #9
    Membre averti Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Points : 439
    Points
    439
    Par défaut
    Mais c'est ce que j'ai dis lol

Discussions similaires

  1. Erreur Form InnerHtml
    Par mariejo dans le forum ASP.NET
    Réponses: 7
    Dernier message: 31/07/2012, 08h44
  2. Erreur IE7 innerHTML javascript
    Par binouzzz19 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 14/05/2008, 10h45
  3. Erreur d'execution impossible avec un innerHTML
    Par CrazySeb dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/06/2007, 17h43
  4. erreur getElementbyId().innerhtml sous ie4
    Par topprof dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 05/10/2006, 17h23
  5. getElementById['exemple'].innerHTML= erreur(null ou n'est..)
    Par weldoo dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 30/01/2006, 17h11

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