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
TECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOURTECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOUR par ROMELARD Fabrice
Cette session est la dernière pleinière de ces 3 jours de TechDays Paris 2010. Généralement, cette troisième journée est plus axée sur l'avenir vu par Microsoft. Après un retour sur l'avenir vu par la Science Fiction ou par ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|