Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1398 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [Ajax][Resolut] Pb avec div.innerHTML = xhr.responseText; sous ie

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Ajax][Resolut] Pb avec div.innerHTML = xhr.responseText; sous ie

n°1775392
notod
Posté le 21-08-2008 à 11:02:33  profilanswer
 

Salut,
 
Je vais vous parler d'un pb sur lequel je viens de plancher 2 jours sans trouver la solution sur le net. Je me suis dit que si qqun tombait dessus, ca pourrait bien l'aider de trouver un post avec la solution !
 
On imagine une page html contenant ceci :

Code :
  1. <script language="Javascript">
  2.   <!--
  3. //// Fonction permettant d'apeller une page php (target) en lui passant des parametres (params) et d'afficher son contenu dans un div (div)
  4. function AjaxPostAndPrintResInDiv(target, params, div)
  5. {
  6.    var OAjax;
  7.    if (window.XMLHttpRequest)
  8.      OAjax = new XMLHttpRequest();
  9.    else if (window.ActiveXObject)
  10.       OAjax = new ActiveXObject('Microsoft.XMLHTTP');
  11.    OAjax.onreadystatechange = function()
  12.    {
  13.       if (OAjax.readyState == 4 && OAjax.status==200)
  14.             document.getElementById(div).innerHTML = OAjax.responseText;
  15.    }
  16.    OAjax.open("POST", target, true);
  17.    OAjax.setRequestHeader('Content-type','application/x-www-form-urlencoded');
  18.    OAjax.send(params);
  19. }
  20.   -->
  21. </script>
  22.               <a href="#"
  23.                   onclick="AjaxPostAndPrintResInDiv('miniAddElem.php', 'aff=toto', 'RubriqueLinkDiv');">
  24.                 Ajout contenu div
  25.               </a>
  26.               <div id="RubriqueLinkDiv">
  27.                 <!-- résulat de la requete ajax -->
  28.               </div>


la page miniAddElem.php est une page quelquonque renvoyant un resultat quelquonque en fonction du contenu des params que l'on lui passe...
 
Ce code fonctionne bien sous firefox, seamonkey, opera. Sous ie cela me sort une erreur de type inconnue  :pfff:  
 
Apres moultes recherches j'ai déterminé que c'était le

document.getElementById(div).innerHTML = OAjax.responseText;


qui posait un pb. A Priori Ie ne m'autorise pas à mettre le contenu de OAjax.responseText dans document.getElementById(div).innerHTML.
En revanche ce que je ne m'explique pas, c'est qu'il m'autorise à faire

document.getElementById(div).innerHTML = "blah blah les fleursetc...";

:kaola:  
 
En cherchant tout les moyens possible de modifier le contenu d'une page en javascript je suis tombé sur la methode appendChild.
en transformant la ligne :

Code :
  1. document.getElementById(div).innerHTML = OAjax.responseText;


 
par :

Code :
  1. var Ndiv = document.createElement("div" );
  2. Ndiv.innerHTML = OAjax.responseText;
  3. document.getElementById(div).appendChild(Ndiv);


 
Mircale, cela fonctionne !  
Je précide que, parmis mes moultes essais, j'avais tenté auparavant de passer par une variable de type texte temporaire sans succes.
 
Je précise aussi pour le puristes que ceci est un bout de code pour illustrer le principe, il n'est donc pas equipé de tout les tests permettant une execution fiable.


Message édité par notod le 21-08-2008 à 11:10:46
mood
Publicité
Posté le 21-08-2008 à 11:02:33  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [Ajax][Resolut] Pb avec div.innerHTML = xhr.responseText; sous ie

 

Sujets relatifs
Pb de chargement de résultat d'URL distanteModifier deux balise avec innerhtml
mettre beaucoup de code dans un innerhtmlse placer dans un fichier.txt en C [ Probléme Résolut ]
[Wininet] Pb avec FTpGetFile lors de la coupure du serveurProbleme Ajax/Prototype ajax.request
Temporisation ob_start() + ajax[Résolu] [javascript] [firefox] .innerhtml = tronqué
Pb syntaxe et autre galère sans nom...Ajax et evenement
Plus de sujets relatifs à : [Ajax][Resolut] Pb avec div.innerHTML = xhr.responseText; sous ie


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR