[Javascript] Firefox et Opera VS Safari et IE
SpoonS2K
Messages postés
13
Date d'inscription
Statut
Membre
Dernière intervention
-
SpoonS2K Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
SpoonS2K Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
après moultes recherches et avoir tourné le truc dans tout les sens, je m'en remet à vous. Je débute dans le Javascript, et dèja je m'aperçois qu'il a des différences entre les divers navigateurs qui existent...
J'ai un script qui est censé utiliser XMLHttpRequest pour récuperer des données a partir
d'un script PHP, et ensuite mettre à jour ma page sans rechargement.
Mon script fonctionne impec sous Firefox, sous Opera, mais impossible de lui faire savoir quoi que ce soit sous Internet Explorer et Safari (Mac et PC).
Je deviens fou, voici mon code:
Merci à vous
après moultes recherches et avoir tourné le truc dans tout les sens, je m'en remet à vous. Je débute dans le Javascript, et dèja je m'aperçois qu'il a des différences entre les divers navigateurs qui existent...
J'ai un script qui est censé utiliser XMLHttpRequest pour récuperer des données a partir
d'un script PHP, et ensuite mettre à jour ma page sans rechargement.
Mon script fonctionne impec sous Firefox, sous Opera, mais impossible de lui faire savoir quoi que ce soit sous Internet Explorer et Safari (Mac et PC).
Je deviens fou, voici mon code:
function recup() { var idProgress=document.getElementById("progress_key").value; var xhr= null; if(window.XMLHttpRequest) xhr = new XMLHttpRequest(); else if(window.ActiveXObject) xhr = new ActiveXObject("Microsoft.XMLHTTP"); else { alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); return; } xhr.open("GET","progress.php?progress_key="+idProgress,true); xhr.send(null); xhr.onload=maj; } function maj() { /*rappel objet xmlHttpRequest */ var repXhr=this.responseText; //récupération de la réponse du serveur via l'objet xmlHttpRequest (this) if (this.readyState == 4) { var objRep=eval('('+repXhr+')'); } document.getElementById("sec").innerHTML=objRep.est_sec+" secondes restantes"; var i = objRep.bytes_uploaded; var j = objRep.bytes_total; var percent = Math.ceil(i*100/j); var pix = percent*300/100; document.getElementById("p_pc").innerHTML=percent+"%"; document.getElementById("p_barre").style.width=parseInt(pix)+"px"; if (percent!=100) { recup(); } }
Merci à vous
A voir également:
- [Javascript] Firefox et Opera VS Safari et IE
- Opera mini pc - Télécharger - Navigateurs
- Udp vs tcp - Guide
- Video downloadhelper firefox - Télécharger - Outils pour navigateurs
- Safari pour windows - Télécharger - Navigateurs
- Telecharger firefox - Télécharger - Navigateurs
1 réponse
Bon je reviens à la charge... J'ai réécris completement mon code, ca marche impec sur Firefox et Opera.
Seulement Internet Explorer m'affiche bien les reponses que je veux mais une seule fois... En fait on a l'impression qu'il bloque sur if (percent!=100) { getstatus(); }, il ne réécute pas le script, et IE plante... Quant a Safari ca ne fonctionne pas du tout... Si vous avez une idée du pourquoi du comment, je suis preneur
Merci
function getstatus() { var xhr = null; if(window.XMLHttpRequest) // Firefox xhr = new XMLHttpRequest(); else if(window.ActiveXObject) // Internet Explorer xhr = new ActiveXObject("Microsoft.XMLHTTP"); else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); return; } var idProgress = document.getElementById("clef").value; xhr.open("GET", "progress.php?progress_key="+idProgress, true); xhr.onreadystatechange = function() { if(xhr.readyState == 4) { if(xhr.status == 200) { var tmp=xhr.responseText; var reponse=eval('('+tmp+')'); var b_up = reponse.bytes_uploaded; var b_tot = reponse.bytes_total; var percent = Math.ceil(b_up*100/b_tot); var pixel = percent*300/100; document.getElementById("sec").innerHTML = reponse.est_sec+" secondes restantes"; document.getElementById("p_pc").innerHTML = percent+"%"; document.getElementById("p_barre").style.width=parseInt(pixel)+"px"; document.getElementById('rep').style.display = ''; if (percent!=100) { getstatus(); } } } } xhr.send(null); }
Seulement Internet Explorer m'affiche bien les reponses que je veux mais une seule fois... En fait on a l'impression qu'il bloque sur if (percent!=100) { getstatus(); }, il ne réécute pas le script, et IE plante... Quant a Safari ca ne fonctionne pas du tout... Si vous avez une idée du pourquoi du comment, je suis preneur
Merci