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 :

[AJAX] innerHTML : code altéré


Sujet :

JavaScript

  1. #1
    Membre habitué Avatar de avogadro
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 412
    Points : 188
    Points
    188
    Par défaut [AJAX] innerHTML : code altéré
    Bonjour, je ne sais pas d'ou ça vien, mais à cause de ça j'ai des petits soucis la; Je ne sais pas pourquoi j'obtiens une altération de code sous FF et pas sous IE Je pense que c'est de là que mes fonctions ne fonctionnent ( ) pas! http://www.developpez.net/forums/sho...d.php?t=197315

    mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var ALSACE_map = 	
    '<map name="Region" border="0">' +
    	'<area shape="rect" coords="248,202,268,222" href="../html/robot.htm?strasbourg">' +
    	'<area shape="rect" coords="146,407,166,423" href="../html/robot.htm?colmar">' +
    	'<area shape="rect" coords="143,535,162,555" href="../html/robot.htm?mulhouse">' +
    '</map>' +
    '<br/>Ville : <select id="town_name">' +
    					'<option value="strasbourg">Strasbourg</option>' +
    					'<option value="mulhouse">Mulhouse</option>' +
    					'<option value="colmar">Colmar</option>' +
    					'<input type="button" value="Valider" onClick="var la_ville = getElementById(\'town_name\').options.selectedIndex;'+
    'location.href=\'./robot.htm?\'+ document.getElementById(\'town_name\').options[la_ville].value;"></select>';
    IE:


    FF:
    =-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=
    (\_/)
    (O.o)
    (> <)
    This is Bunny. Copy Bunny into your signature to help him on his way to world domination!!
    =-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Salut,

    A priori, Il essaie de rendre ton texte "compatible" XML.

    En effet, quand tu écris :

    Tu sors de la spécification XML. Car à la fin de ta balise BR, tu écris directement du texte, ce qui est interdit en XML.

    Donc, j'imagine que bêtement, il t'ajoute une balise <font>, pour le rendre conforme..

    Par contre qu'il te transforme <br/> en <br> c'est étonnant..

    Arrange toi pour englober cette partie de texte, par exemple avec une balise <span> qui n'aurait aucun effet sur le formattage, pour voir si ça ne résoud pas ton problème;

    Tu peux aussi récupérer le flux AJAX en tant que "texte" et donc "non modifié" par le parseur. Peut-être dois-tu procéder de la sorte. En utilsant responseText au lieu de responseXML.

    A+
    K

  3. #3
    Membre habitué Avatar de avogadro
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    Citation Envoyé par KiLVaiDeN
    Arrange toi pour englober cette partie de texte, par exemple avec une balise <span> qui n'aurait aucun effet sur le formattage, pour voir si ça ne résoud pas ton problème
    => ça donne la meme chose avec du span :/

    Citation Envoyé par KiLVaiDeN
    Tu peux aussi récupérer le flux AJAX en tant que "texte" et donc "non modifié" par le parseur. Peut-être dois-tu procéder de la sorte. En utilsant responseText au lieu de responseXML.
    => je ne vois pas très bien ce que tu veux dire par là, ni la manière dont utiliser cette solution
    =-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=
    (\_/)
    (O.o)
    (> <)
    This is Bunny. Copy Bunny into your signature to help him on his way to world domination!!
    =-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=

  4. #4
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Comment as-tu mit ton span ?

    => je ne vois pas très bien ce que tu veux dire par là, ni la manière dont utiliser cette solution
    responseText ne parse pas le contenu; alors que responseXML s'attend à du XML.

    Quel librairie utilises-tu pour récupérer ton flux AJAX ?
    K

  5. #5
    Membre habitué Avatar de avogadro
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    j'utilise pas d'ajax et je connais rien en ajax hehe!

    sinon le span je l'ai mis soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var ALSACE_map = 	
    '<span><map...
     ...
    ...elect></span>';
    soit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    '<span><br/>Ville ...
     ...
    ...elect></span>';
    =-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=
    (\_/)
    (O.o)
    (> <)
    This is Bunny. Copy Bunny into your signature to help him on his way to world domination!!
    =-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=

  6. #6
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Salut,

    En XML, tu ne peux pas écrire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <a>texte
    <b>test</b>
    </a>
    Tu ne peux inclure dans une balise que du texte OU une autre balise, mais pas les deux à la fois.

    donc il faudrait faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var ALSACE_map = 	
    '<map name="Region" border="0">' +
    	'<area shape="rect" coords="248,202,268,222" href="../html/robot.htm?strasbourg">' +
    	'<area shape="rect" coords="146,407,166,423" href="../html/robot.htm?colmar">' +
    	'<area shape="rect" coords="143,535,162,555" href="../html/robot.htm?mulhouse">' +
    '</map>' +
    '<br /><span>Ville : </span><select id="town_name">' +
    					'<option value="strasbourg">Strasbourg</option>' +
    					'<option value="mulhouse">Mulhouse</option>' +
    					'<option value="colmar">Colmar</option>' +
    					'<input type="button" value="Valider" onClick="var la_ville = getElementById(\'town_name\').options.selectedIndex;'+
    'location.href=\'./robot.htm?\'+ document.getElementById(\'town_name\').options[la_ville].value;" /></select>';
    K

  7. #7
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Citation Envoyé par avogadro
    j'utilise pas d'ajax et je connais rien en ajax hehe!
    Autant pour moi, j'associe l'utilisation du innerHTML à l'utilisation d'AJAX désormais hehe, c'est de ma faute

    A+
    K

  8. #8
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Le problème ne vient pas de la...
    Je pense plutot que FF n'est pas capable de créer une MAP sur la pile
    Ca reste à prouver par des tests, mais ca me semble plausible comme explication
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

  9. #9
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Citation Envoyé par FremyCompany
    Le problème ne vient pas de la...
    Je pense plutot que FF n'est pas capable de créer une MAP sur la pile
    Ca reste à prouver par des tests, mais ca me semble plausible comme explication

    Ca me semble choquant, étant donné que l'élément MAP fait partie de la spécif XHTML 1.0 W3c

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!ELEMENT map ((%block; | form | %misc;)+ | area+)>
    K

  10. #10
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Citation Envoyé par KiLVaiDeN
    Ca me semble choquant, étant donné que l'élément MAP fait partie de la spécif XHTML 1.0 W3c

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!ELEMENT map ((%block; | form | %misc;)+ | area+)>
    Oui, mais la tu modifie le code de la page en cours d'affichage/execution... combien de bug dans ce genre d'opération ont déjà été référencés durant ce genre d'opération ? Beaucoups en tout cas...
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

  11. #11
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Possiblement..

    Si c'est le cas, il faudrait que le posteur initial manipule le DOM lui même, en espérant que ça marche..
    K

  12. #12
    Membre habitué Avatar de avogadro
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    Citation Envoyé par KiLVaiDeN
    Salut,

    En XML, tu ne peux pas écrire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <a>texte
    <b>test</b>
    </a>
    Tu ne peux inclure dans une balise que du texte OU une autre balise, mais pas les deux à la fois.

    donc il faudrait faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var ALSACE_map = 	
    '<map name="Region" border="0">' +
    	'<area shape="rect" coords="248,202,268,222" href="../html/robot.htm?strasbourg">' +
    	'<area shape="rect" coords="146,407,166,423" href="../html/robot.htm?colmar">' +
    	'<area shape="rect" coords="143,535,162,555" href="../html/robot.htm?mulhouse">' +
    '</map>' +
    '<br /><span>Ville : </span><select id="town_name">' +
    					'<option value="strasbourg">Strasbourg</option>' +
    					'<option value="mulhouse">Mulhouse</option>' +
    					'<option value="colmar">Colmar</option>' +
    					'<input type="button" value="Valider" onClick="var la_ville = getElementById(\'town_name\').options.selectedIndex;'+
    'location.href=\'./robot.htm?\'+ document.getElementById(\'town_name\').options[la_ville].value;" /></select>';

    ça donne la même chose!

    c'est quoi une MAP sur la pile?

    et une DOM ? ^^ (je suis pas encore bien dans les termes lol)
    =-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=
    (\_/)
    (O.o)
    (> <)
    This is Bunny. Copy Bunny into your signature to help him on his way to world domination!!
    =-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=

  13. #13
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    sur la pile, cela fait référence a la traduction du therme anglais callStack qui représentent toutes les fonctions en cours d'éxécution...

    ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FNC_0
    - FNC_2
    -- FNC_1
    En gros, la fonctin FNC_0 attend une réponse de la fonction FNC_2 qui elle-même attend une réponse de la fonction FNC_1...

    Sur la pile, cela veut dire que l'objet est crée dans une fonction et n'est pas la "à la création" de l'application (ici au chargement de la page web)
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

  14. #14
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Citation Envoyé par KiLVaiDeN
    Tu sors de la spécification XML. Car à la fin de ta balise BR, tu écris directement du texte, ce qui est interdit en XML.
    Je tiens à rectifier ce que j'ai dit; Ceci n'est pas vrai, il est tout à fait possible en XML d'avoir du texte et à coté une balise.

    A+
    K

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] Ajax, innerHTML et fonction javascript - solution ?
    Par gouroulubrik dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 25/03/2008, 21h35
  2. [AJAX] Ajax, innerHTML et variable javascript
    Par philippejuju dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/01/2007, 11h30
  3. innerHTML, code HTML pas mis à jour
    Par highman dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/10/2006, 14h55
  4. [AJAX] innerHTML et IE
    Par gmonta31 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/05/2006, 11h12
  5. AJAX + Innerhtml + img => Bug sous IE
    Par GregPeck dans le forum Langage
    Réponses: 12
    Dernier message: 07/02/2006, 17h43

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