[AJAX] compatibilité ie

Fermé
mitmit - 13 avril 2007 à 11:04
 J - 13 avril 2007 à 11:23
bonjour !

j'ai un problème avec une fonction ajax utilisant un XMLHttpRequest qui est exécutée périodiquement sur mon site (generationsfm.com) et qui appelle un fichier php qui lit un fichier xml, en extrait les informations et rafraîchit l'affichage de ma page avec ces informations.

tout se passe bien sous firefox mais sous ie (pour changer :/) le rafraichissement n'est jamais fait, même en rafraichissant manuellement la page !! le seul moyen de mettre à jour l'affichage est de fermer le navigateur et de le relancer...

voici le fichier php qui est appelé :
<?
switch ($_GET['act'])
{
	case  "track":
	
	$handle = fopen("http://generationsfm.com/sms/Titres.xml", "r");
	$stack = array();
	if ($handle) 
	{
		while (!feof($handle)) 
	    {
		$buffer = fgets($handle, 4096);
		$buffer=strip_tags($buffer);
		array_push ($stack,$buffer);
		}
	 fclose($handle);
	}
		
	echo $stack[3]."-".$stack[4];
	break;
}
?>


et voici la fonction ajax qui l'appelle :
            
                
A voir également:

2 réponses

dsl a la suite d'une fausse manip' le message a été coupé :/

donc la fonction ajax :
<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) {
									var resultat = xhr.responseText;
									document.getElementById('div_track').innerHTML=resultat;
								}
								
							 };
							 
	//on appelle le fichier reponse.txt
    xhr.open("GET","http://generationsfm.com/ajax_track.php?act=track",true);
	xhr.send(null);
	setTimeout("getTrack()", 5000);
}

window.onload=getTrack;
</script>


voilà je ne sais vraiment pas pourquoi ie fait des siennes si quelqu'un a une idée ça m'arrangerait bien ^^

merci par avance
mitmit
0
window.onload=getTrack()

signifie: la fonction s'execute au moment de chaque chargement de la fenetre

Enleves le "window.onload=" et avec seulement getTrack() ca marche aussi
0