begin process at 2012 05 29 21:42:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript et le navigateur

 > 

Problème de compatibilité

 > 

Problème de XmlHttpRequest sous Opera et FF


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème de XmlHttpRequest sous Opera et FF

mardi 4 décembre 2007 à 15:12:34 | Problème de XmlHttpRequest sous Opera et FF

ov3rdoze

Membre Club

Bonjour à tous.

Je travaille actuellement sur un site dans lequel j'utilise XmlHttpRequest. Je viens de mettre celui-ci en ligne, et je m'aperçoit que ma galerie photo ne fonctionne que sous IE et Safari. Avec Opera ou FF, il ne se passe rien. Cependant, il n'y a aucune erreur dans la console de FF.

Voici mon code :

<script language="javascript" type="text/javascript">
 var vitesse = 3000;
 var timer  = false;
 affImage('', 0, 'Vignettes', 'envoivign');
 
 function acc() { if (vitesse > 1000)  vitesse -= 1000; }
 function ral() { if (vitesse < 10000)  vitesse += 1000; }
 
 function affImage(racine, img, cible, page) {
  var xhr;
  if (window.XMLHttpRequest)   xhr = new XMLHttpRequest ();
  else if (window.ActiveXObject)  xhr = new ActiveXObject ('Microsoft.XMLHTTP');
  else {
   alert ("Votre navigateur ne gère pas l'objet XMLHttpRequest.\nVous allez être redirigé(e) vers le portfolio adapté.");
   document.location.replace("index.php?page=portfolio2");
  }
  var page = 'pages/' + page + '.php';
  xhr.open ('POST', page, true);
  xhr.setRequestHeader ('Content-Type','application/x-www-form-urlencoded');
  xhr.setRequestHeader ('Content-Type','charset=iso-8859-1');
  //xhr.overrideMimeType('text/html; charset=ISO-8859-1');
  xhr.onreadystatechange = function() {
   if (xhr.readyState == 4)
    if (document.getElementById){
     document.getElementById (cible).innerHTML = xhr.responseText;
    }
  }
  xhr.send("&racine="+racine+"&img="+img);
 }
 
 function Start(img) {
  document.getElementById("LancDiap").style.display  = "none";
  document.getElementById("Vignettes").style.display = "none";
  document.getElementById("Images").style.display  = "none";
  document.getElementById("Diap").style.display   = "block";
  document.getElementById("StopDiap").style.display  = "block";
  timer = true;
  lancerDiapo(img);
 }
 
 function Stop() {
  document.getElementById("Diap").style.display   = "none";
  document.getElementById("StopDiap").style.display  = "none";
  document.getElementById("LancDiap").style.display  = "block";
  document.getElementById("Vignettes").style.display  = "block";
  document.getElementById("Images").style.display  = "block";
  timer = false;
  affImage(document.rep.srep.value, 0, 'Vignettes', 'envoivign');
 }
 
 function lancerDiapo(img) {
  if (timer) {
   affImage(document.rep.srep.value, img, "Diap", "envoiimg");
   img++;
   setTimeout("lancerDiapo(" + img + ")", vitesse);
  }
 }
</script>
<div id="ListeAlbums">
<form name="rep" method="post">
 <select id="srep" name="srep" class="Select" onchange="javascript:if(!timer){document.getElementById('Images').innerHTML='';affImage(this.value, 0, 'Vignettes', 'envoivign');}">
  <option value="" selected>Toutes les photos</option>
<?php
 foreach ($dir as $tmp){
  $a = str_replace("images/photos/","",$tmp);
  echo "<option value='".$a."'";
  if (isset ($racine)) if ($racine == $tmp) echo " selected";
  echo ">".$a."</option>";
 }
?>
 </select>
</form>

1er problème :
Lorsque l'on change la valeur du Select, la fonction affImage doit normalement récupérer une liste de photos qui dépend de la valeur.
Ca fonctionne au chargement de la page avec la valeur par défaut, mais pas ensuite lorsqu'on change la selection.

2ième problème :
Lorsqu'on lance le diaporama, les images devraient défiler mais au lieu de ça, ça reste bloqué sur la première.

Je pense donc que le problème viens de la fonction affImage qui est appelée dans les 2 cas, mais je ne vois pas d'où cela peut venir. Surtout que cela fonctionne avec certains navigateurs.

Voici également l'URL de la page, si ça peut aider :
[ Lien ]

Merci d'avance

mardi 4 décembre 2007 à 15:13:30 | Re : Problème de XmlHttpRequest sous Opera et FF

ov3rdoze

Membre Club
C'est la page portfolio qui pose problème...
mercredi 5 décembre 2007 à 11:42:45 | Re : Problème de XmlHttpRequest sous Opera et FF

nickadele

Membre Club Administrateur CodeS-SourceS
Sous IE6 pas de problème apparent, après sélection dans la liste j'ai bien des photos qui s'affichent.
Le diaporama fonctionne également !

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
mercredi 5 décembre 2007 à 15:57:03 | Re : Problème de XmlHttpRequest sous Opera et FF

ov3rdoze

Membre Club
C'est seulement FireFox et opera qui posent problème.

Mais merci d'avoir regardé.
jeudi 6 décembre 2007 à 01:59:40 | Re : Problème de XmlHttpRequest sous Opera et FF

Arto_8000

Tu as un problème dans ton script, les requêtes s'effectuent bien, mais retourne toujours le même résultat. C'est probablement un problème de cache. Rajoute ceci au début de ton script PHP et ça devrait règler le problème : header("Cache-Control: no-cache, must-revalidate"); header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); En passant si tu veux débogger avec Firefox je te suggère d'utiliser Firebug, ça aide beaucoup surtout pour les requêtes AJAX. J'ai écrit un tutorial sur comment l'utiliser, consulte le au besoin. http://www.javascriptfr.com/tutoriaux/DEBOGUEUR-AVEC-FIREBUG_768.aspx
jeudi 6 décembre 2007 à 14:17:23 | Re : Problème de XmlHttpRequest sous Opera et FF

ov3rdoze

Membre Club
Merci pour Firebug, c'est clair que c'est pas mal!!

Après pas mal de recherches, je me suis rendu compte que les valeurs envoyées à la page n'arrivent pas. Je pense donc que le problème vient de  :

  xhr.send("&racine="+racine+"&img="+img);

mais je comprend pas pourquoi.

racine et img sont des pramètres de la fonction, je les ai mis dans un alert et c'est bien les valeurs attendues. Par contre la page à laquelle j'envoie la requête me dit "undefined variable" pour ces 2 variables. Elle ne les reçoit pas pour une raison qui m'echappe...
jeudi 6 décembre 2007 à 14:31:28 | Re : Problème de XmlHttpRequest sous Opera et FF

ov3rdoze

Membre Club
Réponse acceptée !
J'ai supprimé la ligne

xhr.setRequestHeader ('Content-Type','charset=iso-8859-1');

et ça fonctionne Si quelqu'un peux m'expliquer...


Cette discussion est classée dans : style, document, display, xhr, getelementbyid


Répondre à ce message

Sujets en rapport avec ce message

problème de div [ par algori ] Bonjour,Voilà, mon problème est qu'il se génère une erreur dans le script suivant quand j'essaie de fermer ma checkbox. Je suppose que l'erreur est si Parade au style.width sous FireFox ? [ par Shibo_Sources ] Bonjour, je découvre à peine toutes les possibilités qu'offre le javascript ce qui explique mon niveau (je ne me suis pas trompé de section au moins : code compatible Mozilla et IE [ par salim81 ] bonjour a tous! j'ai des script javascript qui sont compatible a Mozilla et les meme script en changeant bien sur quelques fonction compatible IE.je c Propriété display avec IE [ par initnocsib ] Bonjour,Voici un petit script qui fonctionne nickel sous Firefox, mais pas du tout sous IE function active(n){        document.getElementByI Probleme du passage d'un script en HTML [ par guillaumedu69 ] Bonjours à tous.Dsl je ne savait pas ou mettre se post alors je l'ai mis ici. si un admin lui trouve une mailleur place il a cas le deplacer et me dir Pourquoi ai-je besoin de 2 clicks au départ ? [ par kaizersoze10 ] Bonsoir a tous ! :D Voila : j'ai une fonction javascript qui fait apparaitre/disparaitre des blocks sur ma page suivant ce qu'on click sur le menu ... Erreur c00ce56e [ par ov3rdoze ] Bonjour à tousJe viens de terminer un site dans lequel j'utilise XMLHttpRequest. En local pas de problème. Je viens d'envoyer le site sur le serveur e probléme d'affichage [ par youzou ] Salut j'ai un 2 tableau  et 2 bouton radio si je coche sur l'un des bouton les 2 tableau seront invisible et inversement si je selectionne l'autre bou probleme de compatibilité de fonction javascript avec la balise <table> [ par misshasnae ] slt ts le mondej'ai un petit problème dans le code html de ma page de réservation, svp si quelq'un a une idée repond moi c urgent é merci d'avance. Remplacement d'une animation flash par une photo via test de plugin [ par benji3rv ] Bonjour,Mon but comme l'explique assez bien le titre est de, dans un premier temps, faire un test pour savoir si le navigateur de l'internaute intègre


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales