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] ajax avec ie6 & 7


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 6
    Par défaut [AJAX] ajax avec ie6 & 7
    BOnjour

    J'ai un script qui permet d'afficher des données d'un xml et se rafraichit automatiquement
    site : http://generationsfm.com
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    <script language="JavaScript" type="text/javascript" >
    var http;
    var inputName;
    function getHTTPObject() 
    {
      var xmlhttp;
    	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
        	try {
    		  	xmlhttp = new XMLHttpRequest();
        } catch (e) {
          xmlhttp = false;
        }
      }
     return xmlhttp;
    }
    function getTrack() 
    {
    	if( ! http ) {
    		http = getHTTPObject();
    	}
    	http.open('GET', 'http://generationsfm.com/ajax_track.php?act=track', true);
    	http.onreadystatechange = retourGetTrack;   
    	http.send(null);
    	setTimeout("getTrack()", 5000);
    }
    function retourGetTrack() 
    {
    	if (http.readyState==4){
    		var resultat = http.responseText;
    		document.getElementById('div_track').innerHTML=resultat; 
      }  
    }
    window.onload=getTrack;
    </script>
    Le script ne marche pas bien :
    Il affiche le titre en cours et ne se rafraichit pas automatiquement!
    Pire meme un refresh de la page ne rafraichit pas la valeure!
    Il faut que je ferme le navigateur et le ré-ouvre poûr rafraichir le titre!!

    Marche pas sous ie 6 & 7!
    Autre probleme : il fait bugguer mon menu css (transmenu) sous ie6 qui ne se déroule plus

    SVP help me je n'ai pas de connaissances en prog (c'est une personne qui me l'a fait il y a quelque temps)

  2. #2
    Membre émérite Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function getHTTPObject() 
    {
      var xmlhttp;
    	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
        	try {
    		  	xmlhttp = new XMLHttpRequest();
        } catch (e) {
          xmlhttp = false;
        }
      }
     return xmlhttp;
    }
    Va voir un des tutos Ajax

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 6
    Par défaut
    Merci de ta réponse..
    Mais qu'est ce qui ne va pas exactement?
    Pourquoi ca ne marche pas dans ie?
    Que faire pour y remédier?

    Merci

  4. #4
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    une des raisons pour laquelle ça marche pas, sur IE6 c'est
    que l'objet XMLHttpRequest n'est pas existant en javascript natif,
    c'est un activeX donc on instancie l'objet avec new ActiveXObject(...)

    Va voir les tuto c'est très bien expliqué.

  5. #5
    Membre émérite Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Par défaut
    Remplace ta fonction getHTTPObject() par celles fournies dans les tutos, tu verra ça marchera mieux

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 6
    Par défaut
    bonjour

    j'ai repris le code en utilisant vos réponses et le tuto, mais ça ne fonctionne toujours pas sous internet explorer...

    voici le code tel qu'il est actuellement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    <script language="JavaScript" type="text/javascript">
     
    function getXhr() {
    	var xhr = null;
     
    	//firefox
        if (window.XMLHttpRequest) { 
    		xhr = new XMLHttpRequest();
        }
     
    	//ie
        else if (window.ActiveXObject) {
    		try {
    		xhr = new ActiveXObject("Msxml2.XMLHTTP");
    		}
    		catch (e) { 
    			xhr = new ActiveXObject("Microsoft.XMLHTTP");
    		}
        }
     
    	//non supporté
    	else {  
    		alert("Fonction non supportée par le navigateur"); 
    		xhr = false; 
    	}
     
    	return (xhr);
    }
     
    function getTrack()
    {
        var xhr = getXhr();
     
        //on définit l'appel de la fonction au retour serveur
        xhr.onreadystatechange = function() { 
    								if (xhr.readyState == 4 && xhr.status == 200) retourGetTrack(xhr); 
    							 };
     
        //on appelle le fichier reponse.txt
        xhr.open("GET","http://generationsfm.com/ajax_track.php?act=track",true);
        xhr.send(null);
    	//setTimeout("getTrack()", 5000);
    }
     
    function retourGetTrack(xhr)
    {
    	var resultat = xhr.responseText;
    	//alert(resultat);
    	document.getElementById('div_track').innerHTML=resultat; 
    }
     
    window.onload=getTrack;
    </script>
    d'après les affichages de test, sous ie c'est bien un ActiveXObject qui est déclaré, mais l'affichage n'est toujours pas mis à jour
    est-ce à cause d'une fonction appelée dans getTrack ou retourGetTrack qui n'est pas supportée par le navigateur ?
    merci

  7. #7
    Membre émérite Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Par défaut
    Ton alert(resultat) te retourne quoi?
    Parce que le innerHTML, ça passe pas toujours.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 6
    Par défaut
    heu en fait je pense que le problème se situe plus haut
    j'ai testé la valeur de xhr.responseText dans le corps de getTrack juste avant l'appel de retourGetTrack, et sous ie j'ai constaté que le titre n'est pas mis à jour...

    je comprends vraiment pas pourquoi...
    merci pour ton aide en tout cas ^^

  9. #9
    Membre émérite Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Par défaut
    Ben essaye sans fonction...
    Un truc de ce type là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function getTrack()
    {
        var xhr = getXhr();
     
        //on définit l'appel de la fonction au retour serveur
        xhr.onreadystatechange = function() { 
    	if (xhr.readyState == 4 && xhr.status == 200) {
                alert(xhr.responseText);
            }
        };
     
        //on appelle le fichier reponse.txt
        xhr.open("GET","http://generationsfm.com/ajax_track.php?act=track",true);
    xhr.send(null);
    }

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 6
    Par défaut
    bon alors sans fonction le résultat est le même

    est-ce que ça pourrait venir du type du xhr, un objet XMLHttpRequest et un objet ActiveXObject ont-ils exactement les mêmes propriétés ?
    parce que comme je le disais sous firefox (où le xhr est un XMLHttpRequest) la mise à jour est faite dès que le fichier xml est modifié, mais pas sous ie (où c'est un ActiveXObject)

    je suis peut être complètement à côté mais je sais vraiment pas d'où peut venir ce problème...

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 6
    Par défaut
    personne n'aurait une idée ??

Discussions similaires

  1. [AJAX] AJAX avec IE6
    Par citix dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/09/2007, 19h24
  2. [AJAX] probleme avec innerhtml
    Par GTJuanpablo dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 19/03/2006, 13h21
  3. AJAX : Problème avec les accents...
    Par @drien dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 29/01/2006, 14h33
  4. [AJAX] Problèmes avec les caractères accentués
    Par marti dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 26/10/2005, 14h10

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