|
|
|
|
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(); }
}
Configuration: Windows XP // Firefox 3.0 - IE7 - Opera 9 - Safari OSX 10.4.11 // Firefox 3.0 - Safari 9 - Camino
|
Bon je reviens à la charge... J'ai réécris completement mon code, ca marche impec sur Firefox et Opera.
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 |
Résultats pour [Javascript] Firefox et Opera VS Safari et IE
Résultats pour [Javascript] Firefox et Opera VS Safari et IE
Résultats pour [Javascript] Firefox et Opera VS Safari et IE
Résultats pour [Javascript] Firefox et Opera VS Safari et IE
Résultats pour [Javascript] Firefox et Opera VS Safari et IE