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 marche pas et script executé à l'envers


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 114
    Points : 75
    Points
    75
    Par défaut innerHTML ne marche pas et script executé à l'envers
    Bonsoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        alert("before");
        var coords      = document.getElementById("divName").innerHTML;
        alert("inner works : "+coords);
    dans la page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div class="divName">41.3108238809182,-0.615234375</div>
    Le bloc de innerHTML est dans un script que j'appelle lors du chargement de la page, et le deuxieme bloc de code se trouve dans la page chargé

    J'aimerai savoir pour quoi le innerHTML dans cet exemple ne marche pas !
    le deuxieme alert ne s'affiche pas et la variable coords reste null. J'avais essayé avec "class" et "id" pour la divName, et aussi les quotes et double quote pour le getElementById

  2. #2
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Salut.

    Ce qui t'étonne, c'est quoi, que getElementById ne renvoie pas les éléments par rapport à leur classe ???
    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

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 114
    Points : 75
    Points
    75
    Par défaut
    Exactement Bovino
    ça ne renvoit rien envers la variable Coords, et l'execution du script s'arrette dans la ligne du innerHTML.

    plus bas dans le code, j'essaie une insertion avec innerHTML en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('divName').innerHTML = strHtml;
    où strHTML est une chaine de caractere, et là encore même souci, le script s'arrete à cette ligne sans porter de modifications, comme si le innerHTML ne marche plus

  4. #4
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 114
    Points : 75
    Points
    75
    Par défaut
    Je me suis dis que peut etre de la où j'execue le innerHTML le DOM n'est pas completement chargé, alors j'ai mis mon code dans
    window.onload = function {code}

    mais là, bizarrement mon script s'execute à l'envers !
    ça commence par executer les lignes depuis la fin du fichier...
    voici le code dont je parle :
    http://pastie.org/845979
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    window.onload = function() {
        alert("top");
        var strHtml = '';
        var akey        = 'ABQIAAAAznbYKnw5PiIZDEZzbV-nAhTv1voBitB27e5IkLhqfardrn8cwRSngiDQarPv4TcbyHO6x83Zx0r7Iw';
        var divnam      = 'map';
        var coords      = document.getElementById('googlemaps').innerHTML;
        //alert("inner works : "+coords);
     
        if ( coords == "")
        {   //affichage du message d'erreur depuis le fichier de langue'
            alert(tinyMCEPopup.getLang('googlemaps_dlg.missing_stuff'));
        }
        else
        {
            strHtml = '<span id="spangooglemaps">\n';
            strHtml += '<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key='+akey+'" type="text/javascript"></script>';
    alert("before script");
            strHtml += '<script type="text/javascript">\n';
    alert("after 1 script");
            strHtml += 'function load() \n';
            strHtml += '{\n';
            strHtml += '  if (GBrowserIsCompatible())\n';
            strHtml += '  {\n';
    alert("after 2 script");
            strHtml += '  var map = new GMap2(document.getElementById("'+divnam+'"))\;\n';
            strHtml += '  var center = new GLatLng('+coords+')\;\n';
            strHtml += '  map.setCenter(center, 4)\;\n';
            strHtml += '  map.addOverlay(new GMarker(center))\;\n';
     
                        //definition du types des controls. 3D controls pour cette version
                        strHtml += '  var customUI = map.getDefaultUI();\n';
                        strHtml += '  customUI.maptypes.hybrid = false;\n';
                        strHtml += '  map.setUI(customUI);\n';
                        //fin du definition des controls
     
                        strHtml += '  }\n';
                        strHtml += '}\n';
     
                        strHtml += 'function addLoadEvent(func) \n';
                        strHtml += '{\n';
                        strHtml += 'var oldonload = window.onload;\n';
                        strHtml += '  if (typeof window.onload != \'function\') \n';
                        strHtml += '  {\n';
                        strHtml += '  window.onload = func;\n';
                        strHtml += '  } \n';
                        strHtml += '  else \n';
                        strHtml += '  {\n';
                        strHtml += '  window.onload = function() \n';
                        strHtml += '    {\n';
                        strHtml += '    if (oldonload) \n';
                        strHtml += '    {\n';
                        strHtml += '    oldonload();\n';
                        strHtml += '    }\n';
                        strHtml += '    func();\n';
                        strHtml += '}\n';
                        strHtml += '}\n';
                        strHtml += '}\n';
     
                        strHtml += 'addLoadEvent(load)\;\n';
     
                        strHtml += 'if (window.attachEvent) {\n';
                        strHtml += '  window.attachEvent("onunload", function() {\n';
                        strHtml += '  GUnload();      // Internet Explorer\n';
                        strHtml += '        });\n';
                        strHtml += '} else {\n';
                        strHtml += 'window.addEventListener("unload", function() {\n';
                        strHtml += 'GUnload(); // Firefox and standard browsers\n';
                        strHtml += '    }, false);\n';
                        strHtml += '}\n';
     
     
            strHtml += '</script>\n';
     
            strHtml += '<div id="'+divnam+'" style="background:#d3d3d3;width: 400px; height: 250px;" class="map">&nbsp;</div>\n';
            strHtml += '</span>\n';
     
            //insertion de la map
            document.getElementById('googlemaps').innerHTML = strHtml;
        }
     
    alert("bottom");
    }

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,
    Citation Envoyé par Bovino
    Ce qui t'étonne, c'est quoi, que getElementById ne renvoie pas les éléments par rapport à leur classe ???
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <div class="divName" id="divName">41.3108238809182,-0.615234375</div>

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 117
    Points : 142
    Points
    142
    Par défaut
    Citation Envoyé par vladimire Voir le message
    Exactement Bovino
    ça ne renvoit rien envers la variable Coords, et l'execution du script s'arrette dans la ligne du innerHTML.

    plus bas dans le code, j'essaie une insertion avec innerHTML en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('divName').innerHTML = strHtml;
    où strHTML est une chaine de caractere, et là encore même souci, le script s'arrete à cette ligne sans porter de modifications, comme si le innerHTML ne marche plus
    document.getElementById ça veut dire qu'il teretourne un élément avec l'id correspondant

    et toi tu as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <div class="divname">
    C'est quoi que tu comprends pas là ?

  7. #7
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 114
    Points : 75
    Points
    75
    Par défaut
    Bonjour Gatsu35,
    j'ai deja precisé que j'ai essayé avec class="divname" et id="divname", meme resultat
    Salut Andry,
    oui, j'ai essayé de faire même :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <div class="divName" id="divName">41.3108238809182,-0.615234375</div>
    Tout les elements en dessus du innerHTML s'execute, et ça s'arrete lors de l'execution de cette derniere

    Et là quand j'ai inclus le code dans window.onload = function {} pour m'assurer que ça s'execute lorsque le DOM is ready j'ai mon code qui s'execute bizarrement à l'envers, ça commence par executer les lignes from the bottom to the top...

  8. #8
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Re,
    j'ai mon code qui s'execute bizarrement à l'envers, ça commence par executer les lignes from the bottom to the top...

    Mets un alert pour voir ce qui se passe,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var coords      = document.getElementById("divName").innerHTML;
    alert (coords);
    Mais il y a deux div("divName" et "googlemaps") dans ton code dont tu affectes ses contenues dans la(les) variable(s) coords .

  9. #9
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 114
    Points : 75
    Points
    75
    Par défaut
    allons Andry, le alert est deja en place, et j'ai deja dis que la variabe coords reste "undefined"
    (mon tout premier poste)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        var coords      = document.getElementById("divName").innerHTML;
        alert("inner works : "+coords);
    "divname" c'etait pour l'exemple, mais dans le script ça s'appelle "googlemaps"

    maintenant c'est vraiment le script qui s'exécute à l'envers qui m'intrigue... j'ai posé des alerts tout au long du script et c'est celles d'en bas qui s'affichent en premier...

Discussions similaires

  1. innerHTML ne marche pas sous IE
    Par kamclasse dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 08/05/2009, 12h07
  2. code javascript ne marche pas balise script
    Par unmaxdemily dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/03/2009, 00h46
  3. script qui marche dans la console firebug mais pas a l'execution
    Par xclam dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 11/05/2007, 12h16
  4. [JavaScript] [FAQ] Pourquoi mon script JS ajouté à ma page avec innerHTML ne marche-t-il pas ?
    Par FremyCompany dans le forum Contribuez
    Réponses: 6
    Dernier message: 05/03/2007, 20h44
  5. Tcsh - Mon script ne marche pas
    Par Aramis dans le forum Linux
    Réponses: 5
    Dernier message: 13/05/2004, 18h26

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