Accueil > Forum > > > > XMLHTTPRequest & FF
XMLHTTPRequest & FF
lundi 18 mai 2009 à 14:26:41 |
XMLHTTPRequest & FF

spinosaurus
|
Bonjour à toutes et tous je galère depuis plusieurs jours pour rendre compatible multi-navigateur un de mes scripts utilisant du XHR. Je suis allé fouiner un peu partout et je n'ai rien trouvé qui fonctionne correctement. Je veux remplir une div avec du code très simple (une table et une select avec méthode onclick). Rien de bien méchant. Ca marche sous IE, Opera, Chrome, Safari et Maxthon. Et pas sous FF ni NN. Je n'arrive pas à remplir le innerHTML à l'écriture ni, a fortiori, relire le textContent.
ci-après, extrait du code js qui s'occupe de dette fonction <texte> function getText(id) { if(document.all) { return document.getElementById(id).innerText; } else { return document.getElementById(id).textContent; } } function videCases() { document.personne.titre.value = ""; document.personne.nom.value = ""; document.personne.prenom.value = ""; document.personne.adresse1.value = ""; document.personne.adresse2.value = ""; document.personne.codepost.value = ""; document.personne.ville.value = ""; document.personne.pays.value = ""; document.personne.telephone1.value = ""; document.personne.telephone2.value = ""; document.personne.sondage.value = ""; document.personne.CliSOFFRES.value = ""; } function ChangePers(num) { SetDisplay("choixMail","none"); var liste = getText("listePersonnes"); var ind = 14*num; var personnes = liste.split(";"); var nbPers = 1*personnes[0]; if (num<nbPers) { for (var t=1;t<5;t++) { var tit = getElm("tit"+t); if (tit.value==personnes[2+ind].rtrim()) tit.checked = true; } document.personne.nom.value = personnes[3+ind].toUpperCase().rtrim(); var len = personnes[4+ind].length; document.personne.prenom.value = personnes[4+ind].charAt(0).toUpperCase()+personnes[4+ind].substr(1,len-1).rtrim(); document.personne.adresse1.value = personnes[5+ind].rtrim(); document.personne.adresse2.value = personnes[6+ind].rtrim(); document.personne.codepost.value = personnes[7+ind].rtrim(); document.personne.ville.value = personnes[8+ind].toUpperCase().rtrim(); document.personne.pays.value = personnes[9+ind].toUpperCase().rtrim(); document.personne.telephone1.value = personnes[10+ind].rtrim(); document.personne.telephone2.value = personnes[11+ind].rtrim(); document.personne.sondage.value = personnes[12+ind].replace(/,/g,";").rtrim(); document.personne.CliSOFFRES.value = personnes[12+ind].replace(/,/g,";").rtrim(); document.personne.idv.value = personnes[13+ind].rtrim(); document.personne.ccli.value = personnes[14+ind].rtrim(); getElm("listePersonnes").innerHTML = ""; getElm("choixMail").innerHTML = ""; } // si num=nbPers, c'est une nouvelle personne à cette adresse mail } function AffMail() { var liste = getText("listePersonnes"); var personnes = liste.split(";"); var nbPers = 1*personnes[0]; var div = getElm("choixMail"); if (nbPers==1) ChangePers(0); else if (nbPers>0) { var nbElm = 1*nbPers+1; var select = "<select size='"+nbElm+"' onclick='ChangePers(this.options[selectedIndex].name);'>\r"; var optSel = "<option selected name=\""; var option = "<option name=\""; var ferme = "\">\r"; var noitpo = "</option>\r"; var tceles = "</select>\r"; var index = 1; var listeOpt = ""; for (i=0;i<nbPers;i++) { index = 3+(14*i); // les coordonnées se répètent toutes les 14 valeurs var champsAff = ""; for (j=2;j<9;j++) champsAff = champsAff + personnes[index+j]+" "; listeOpt = listeOpt+option+i+ferme+personnes[index+1]+" "+personnes[index]+" "+champsAff+noitpo; } i++; listeOpt = listeOpt+option+i+ferme+"Nouvelle personne à cette adresse mail"+noitpo; select = select + listeOpt + tceles; div.innerHTML = "<table><tr><td>"+select+"</td></tr></table>"; SetDisplay("choixMail",""); } // si 0, on vide else videCases(); } function checkMail(inst) { var email = getElm("email").value; var param = "inst="+inst+"&email="+email; Send_XHR_Object("site/getmail.php?"+param,"listePersonnes","D"); AffMail(); }
et dans le html, j'ai la déclaration des 2 div avec style='display:none' </texte>
Toute aide est la bienvenue
Spinosaurus

|
|
lundi 18 mai 2009 à 14:39:01 |
Re : XMLHTTPRequest & FF

Bul3
|
Bonjour, >>Je suis allé fouiner un peu partout et je n'ai rien trouvé qui fonctionne correctement. ??? ajax, ça fonctionne avec "tous" les navigateurs actuels si ça ne fonctionnait pas avec FF, ça se saurait ! pas regardé très loin ce que tu nous met... ne serait-ce que parce qu'on n'a pas Send_XHR_Object dont dépend pas mal de choses et loin d'être sûr que tu localises d'ailleurs bien ton souci... en attendant plus de données :
| Navigateurs | Quelques Explications |
|---|
Chrome
 | contrôler page actuelle / Options pour développeurs / Console Javascript | FireFox
 | Outils / Console d'erreurs et mieux : télécharger FireBug | Internet Explorer
 | activer le deboggage : Outils/options Internet/Avancés dans la liste, sous "Navigation" : décocher o Afficher une notification de chaque erreur de script o Désactiver le débogage de Scripts (Internet Explorer) et mieux (pour IE < 8) : télécharger le Debogger IE voir aussi : DebugBar et Companion JS | K-Meleon
 | Outils / Console d'erreurs | Opera
 | Outils / Avancé / Console d'erreurs | Safari
 | Debug / Show JavaScript Console ° modifier Fichier com.apple.Safari.plist situé dans le répertoire : Support:\Documents and Settings\utilisateur \Application Data\Apple Computer\Safari\Preferences\ y ajouter <key>IncludeDebugMenu</key> <true/> |
|
Cordialement [ mon Site] [ M'écrire]  Bul
|
|
lundi 18 mai 2009 à 15:03:38 |
Re : XMLHTTPRequest & FF

Bul3
|
et déjà... Send_XHR_Object("site/getmail.php?"+param,"listePersonnes","D"); AffMail(); AffMail va être lancé avant que Send_XHR_Object ne réponde sans même parler si ajax est en synchrone ou pas !
|
|
lundi 18 mai 2009 à 15:42:44 |
Re : XMLHTTPRequest & FF

spinosaurus
|
Bul, j'ai déjà regardé la console d'erreurs. Mis à part quelques styles css ignorés, pas d'erreur. La fonction send_XHR_object attend la fin de la réponse (booléen mis à false systématiquement). Je vais installer FireBug et voir plus loin. Je vais tester K-Meleon aussi. Merci de tes réponses. Spinosaurus 
|
|
lundi 18 mai 2009 à 16:09:27 |
Re : XMLHTTPRequest & FF

Bul3
|
>>La fonction send_XHR_object attend la fin de la réponse peut-être, sûrement, je veux bien te croire sur parole mais je te disais : AffMail va être lancé avant que Send_XHR_Object ne réponde tel que tu le fais! le traitement de AffMail doit être fait dans la fonction appelée dans "xhr".onreadystatechange lorsque que "xhr".readyState == 4
|
|
lundi 18 mai 2009 à 17:07:27 |
Re : XMLHTTPRequest & FF

spinosaurus
|
Voilà, j'ai changé mon code selon tes conseils. <debut> function checkMail(inst) { var email = getElm("email").value; var param = "inst="+inst+"&email="+email; var xhr_object = null; if (window.XMLHttpRequest) { xhr_object = new XMLHttpRequest(); // Firefox } else if (window.ActiveXObject) { xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); // Internet Explorer } else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); return; } var laDiv = getElm("listePersonnes"); xhr_object.open("GET", "site/getMail.php?"+param, false); xhr_object.onreadystatechange = function() { if (xhr_object.readyState==4) { laDiv.innerHTML = xhr_object.responseText; AffMail(); } } xhr_object.send(null); } <fin> Fonctionne toujours sous IE, Opera, Safari, Maxthon et Chrome mais pas sur FF et NN, ni sur K-Meleon que je viens d'installer. Spinosaurus 
|
|
lundi 18 mai 2009 à 17:24:26 |
Re : XMLHTTPRequest & FF

spinosaurus
|
Correction de l'énoncé: le pb est même en amont de la div contenant une table et une select. Le première div contient tout simplement une string! Ce n'est même pas du html. Spinosaurus 
|
|
mardi 19 mai 2009 à 10:01:52 |
Re : XMLHTTPRequest & FF

Bul3
|
qu'est-ce qui ne fonctionne pas ? l'affichage dans la div ? si oui : erreur css ou html pour FF ? lance le php directement ( sans passer par ajax ) le résultat est correct ? tu as fait des alert au fûr et à mesure ? alert(xhr_object.responseText;) ? par exemple, c'est ok ? tu as fait du pas à pas ? tu peux nous donner une adresse pour tester ? car comme "on n'a pas tout".... difficile de voir.
|
|
mardi 19 mai 2009 à 10:18:46 |
Re : XMLHTTPRequest & FF

spinosaurus
|
Bonjour, ce qui ne fonctionne pas, en effet, c'est le remplissage de la div, ou plutôt la récolte du contenu (responseText). Elle est normalement cachée, mais pour des raisons de debug, je la laisse visible. A part le "style='display:none' " quand elle est cachée, elle n'a aucun style rattaché (puisqu'elle n'est pas visible en temps normal). Le php lancé par la requête fonctionne sans problème. Alert(xhr_object.responseText) fonctionne sous IE et autres mais pas dans le cas de FF. Je ne peux pas mettre d'adresse à dispo car ce script n'est pas encore en ligne. Pour le pas-à-pas, je ne sais pas comment faire, je n'ai pas l'habitude de FireBug, je viens à peine de l'installer. le code de la div (on ne peut faire plus simple) <div id='listePersonnes'></div> Spinosaurus

|
|
mardi 19 mai 2009 à 18:07:33 |
Re : XMLHTTPRequest & FF

spinosaurus
|
Hello? Y'a personne aujourd'hui?  Demain, alors?
Spinosaurus

|
|
Cette discussion est classée dans : var, document, value, personnes, ind
Répondre à ce message
Sujets en rapport avec ce message
addition successive d'un champ de formulaire [ par Serialsiner ]
Bonjour,Je cherche à additionner des heures et minutes situées dans 2 champs différents et à afficher le résultat dans un troisième champ résultat.Le
Mise en forme conditionnelle [ par fdthierry ]
Bonjour, J'ai un tableau qui m'affiche toute une série de champ, à un champ précis nommé txtDoc j'ai un événement onchange.J'aimerais que celui ci se
texte dans div au curseur [ par tonytruand ]
bonsoir,J'ai encore un soucis, j'aimerais envoyer du texte dans un div à l'endroit du curseur comme cela se fait déjà dans un textarea (vu sur forum),
Problème cahce avec IE [ par goulouk ]
Bonjour,je voudrais savoir comment empécher de mettre une page en cache, ou alors obliger IE à recharger la page sans la prendre dans le cache.Je vous
pb d'insertion [ par neotetsuo34 ]
Bonjour,j'ai un probleme d'insertion d'une image sélectionné avec tinyMCE. En fait j'ai une page image qui selectionne une image et quand je clique su
incrementer [ par tonytruand ]
bonjour;j'ai un souci d'incrémentation. Dans une function ci dessous, j'aimerai que le i se traduise par 0 puis 1 puis 2 etc.J'ai bien essayer le for
Probleme de debutant [ par darkwhite ]
Salut a tous. J'ai commencer le Javascript depuis une semaine donc je debute tout juste.J'ai commencé ce programme simple : .:Darlwhite:.
Aide envoi formulaire asynchrone [ par shadow1779 ]
Bonsoir,je souhaite envoyer un formulaire via xmlhttprequest afin de vérifier par une page php si certains champs n'existent pas deja dans la base de
sujet formulaire [ par limaseb ]
J'ai un probleme sur mon formulaire aimerais le faire apparaitre en email outlook mais en colonne et non en ligne avec entre les informations & ces po
Alarm [ par DomJ ]
Bonjour, je voudrais faire un script que, on met l'alarm à telle heure, puis à cette heure précise, (si la fenêtre est ouvert, ça ouvre un "alert()" a
Livres en rapport
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|