Accueil > Forum > > > > [Javascript] Firefox et Opera VS Safari et IE
[Javascript] Firefox et Opera VS Safari et IE
samedi 12 juillet 2008 à 15:15:04 |
[Javascript] Firefox et Opera VS Safari et IE

SpoonS2K
|
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: 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
|
|
samedi 12 juillet 2008 à 15:24:30 |
Re : [Javascript] Firefox et Opera VS Safari et IE

bultez
|
Bonjour, >>je m'aperçois qu'il a des différences entre les divers navigateurs qui existent... doux euphémisme... hélas. >> xhr.onload=maj; ?? étonné que ça baigne avec FF d'ailleurs ! c'est pour le xml "normalement" ( mais qu'y a-t-il de normal ? ) pas pour ajax tu utilises la méthode asynchrone : xhr.open("GET","progress.php?progress_key="+idProgress, true); il faut attendre la réponse du serveur, et pas avec onload. xhr..onreadystatechange = function() { if(xml.readyState == 4) { la réponse a été reçue... reste à tester si status==200 et faire le boulot sans préjuger du reste ( pas regardé )
Cordialement  Bul [ mon Site] [ M'écrire]
|
|
samedi 12 juillet 2008 à 15:25:30 |
Re : [Javascript] Firefox et Opera VS Safari et IE
|
samedi 12 juillet 2008 à 16:28:47 |
Re : [Javascript] Firefox et Opera VS Safari et IE

SpoonS2K
|
J'ai procédé comme tu m'as dis, mais je suis pas vraiment convaincu puisque maintenant ca ne fonctionne plus nulle part xhr.open("GET","progress.php?progress_key="+idProgress,true); xhr.onreadystatechange = function() { if(xhr.readyState == 4) { if(xhr.status == 200) tcb; } } xhr.send(null);
|
|
samedi 12 juillet 2008 à 20:25:34 |
Re : [Javascript] Firefox et Opera VS Safari et IE

SpoonS2K
|
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
|
|
dimanche 13 juillet 2008 à 14:12:49 |
Re : [Javascript] Firefox et Opera VS Safari et IE

bultez
|
pas suivi... tu veux afficher la progression ? ne teste pas xhr.readyState == 4 alors, ça veut dire que c'est fini. de toutes manières FF te "rend" le main entre deux, pas IE. ou alors tu as un problème de cache ? ajoute '?'+new Date() derrière l'url
Cordialement  Bul [ mon Site] [ M'écrire]
|
|
dimanche 13 juillet 2008 à 16:54:18 |
Re : [Javascript] Firefox et Opera VS Safari et IE

SpoonS2K
|
En fait xhr.open lit un fichier texte qui est mis a jour toute les secondes, d'ou l'interet de if (percent!=100) { getstatus(); } . Dans mon fichier il ya la valeur percent et je veux que mon script tourne en boucle en relisant le fichier texte tant que percent n'est pas égal à 100
|
|
dimanche 13 juillet 2008 à 16:56:01 |
Re : [Javascript] Firefox et Opera VS Safari et IE

SpoonS2K
|
Et j'ai essayé en rajoutant +newDate() ca change rien 
|
|
dimanche 13 juillet 2008 à 18:19:44 |
Re : [Javascript] Firefox et Opera VS Safari et IE

bultez
|
xhr.open("GET", "progress.php?progress_key="+idProgress+'&'+new Date(), true); et je répète... IE ne rend la main qu'à la fin du traitement php.
Cordialement  Bul [ mon Site] [ M'écrire]
|
|
dimanche 13 juillet 2008 à 18:23:53 |
Re : [Javascript] Firefox et Opera VS Safari et IE

bultez
|
if (percent!=100) { getstatus(); } et tu refais pas le xhr.send(null); ? on ne rappelle pas donc le php.
Cordialement  Bul [ mon Site] [ M'écrire]
|
|
Cette discussion est classée dans : var, document, xhr, xmlhttprequest, getelementbyid
Répondre à ce message
Sujets en rapport avec ce message
ajax/xmlhttprequest [ par David_monchy ]
salut à tous,je développe un chat, et j'ai un problème: j'utilise une liste de connectés qui affiche en 'temps reel' les membres connectés. Seulement,
Problème avec XMLHTTPRequest ! [ par nicomilville ]
Salut,Et oui, c'est encore moi, vous devez vous dire que je suis un gros nul !Peut être, peut être pas !Je reviens vous voir car je dois finir un chat
Encore des erreurs ! [ par nicomilville ]
Salut,Et oui, c'est encore moi, vous devez vous dire que je suis un nul, c'est peut être vrai, lol J'ai encore des erreurs sur mon code... Si ça co
probleme de mise en forme avec insertion balise [ par G4uthier ]
Bonjour, voila mon probleme, je voudrais inserer des nouveaux champs de formulaire comme ceci: :Property Image Grace a ma fonction javascript mais
Lancer une fonction après la fin d'exécution d'une autre fonction [ par bm3w325i ]
Bonjour,Actuellement j'ai un input qui lors d'un Onclick se rempli par des coordonnées GoogleMaps, un fois rempli je récupère les données pour les aff
[déplacé Bar -> JS] tableaux [ par nabilwael ]
Bonjour,j'ai ce fichier js :var i = 0; function create_champ(){ if(i document.getElementById('champs').innerHTML += " Name</label>
Problème de Popup-Tooltip [ par whiteange ]
Bonjour à tous,Voilà, j'ai un petit problème avec un simili poup-tooltip. Sur une page, l'utilisateur clique sur une image, ceci appel alors une fonct
envois de formulaire ajax [ par Annadrill ]
bonjour,voilà, j'aimerais modifier la fonction que je vous mets la dessous, de manière a pouvoir l'utiliser avec n'importe quel formulaire, en précisa
Accés à une page via user et mot de passe avec ajax et php [ par developvbdebut ]
BonsoirVoici mon problème.Au départ je suis sur la page index.html, en saissant le bon nom utilisateur et le mot de page, je veux acceder à la page su
calculer via un formulaire [ par cedcyr ]
bonjour je vien de realiser un formulaire lier a code javascript il n'y a apparament pas d'erreur et pourtant la boucle ne se fait pas pourquoi voici
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|