[JS] ajax bloque avec IE [Résolu]

Signaler
Messages postés
5
Date d'inscription
lundi 25 juin 2007
Statut
Membre
Dernière intervention
18 novembre 2007
-
Messages postés
5
Date d'inscription
lundi 25 juin 2007
Statut
Membre
Dernière intervention
18 novembre 2007
-
Bonjour,
Mon probleme est que mon code fonctionne sous FF mais pas sous IE, ca m'arrive tous le temps quel perte de temps sa me gonfle.
Enfin c'est comme ca.

Le probleme vien du code JS
"texte = file(lienverscode); "
sur cette ligne si je ne me trompe   
"xhr_object.open("GET", fichier, false);"

Je vous met ci-joint tous mon code.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" dir="ltr" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<script type="text/javascript">
function getXhr(){
                                var xhr = null;
                if(window.XMLHttpRequest) // Firefox et autres
                   xhr = new XMLHttpRequest();
                else if(window.ActiveXObject){ // Internet Explorer
                   try {
                            xhr = new ActiveXObject("Msxml2.XMLHTTP");
                        } catch (e) {
                            xhr = new ActiveXObject("Microsoft.XMLHTTP");
                        }
                }
                else { // XMLHttpRequest non supporté par le navigateur
                   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
                   xhr = false;
                }
                                return xhr
            }
           
function writediv(texte)
{
    document.getElementById('corps').innerHTML = "coucou";

   
}
function FenetreCorpsAJAX(lienverscode)
{
    alert(lienverscode);
    texte = file(lienverscode);   
    writediv(texte);
}
function file(fichier)
{   
     xhr_object =getXhr();
     xhr_object.open("GET", fichier, false);
     xhr_object.send(null);
     if(xhr_object.readyState == 4) return(xhr_object.responseText);
     else return(false);
}
</script>

</head>

<!-- ImageReady Slices (Sans titre-3.psd) -->
    ----

                    ,
   
    ----

                    ,
                    ,
                    ,
   
    ----

                    ,
   
    ----

                   ,
   

<!-- End ImageReady Slices -->

</html>

6 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>window.XMLHttpRequest qui fait mal son boulot sous IE
    non, non
>>Apperment il existe alors qu'il devrait pas.

    si, si.

j'use de ça pour ajax :

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function xmlhttp()    //~~ XMLHTTP ~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{   var x;
    try            {    x = new ActiveXObject("Microsoft.XMLHTTP");    }
    catch (e)  {    try           {    x = new ActiveXObject("Msxml2.XMLHTTP");    }
                         catch (e) {    try            {    x = new XMLHttpRequest();    }
                                             catch (e)  {    x=false;    }
                                        }
                    }
    return x;
}

et pas de souci...

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
Bonjour,

    j'ai quelques doutes sur la fonction et sur getXhr()


       et sur l'envoi/réception AJAX,   mais tu dis que
        ça fonctionne avec FF, donc, à priori : aucune raison.

    pas d'erreurs "comme çà" à l'oeil,  mais on ne peut rien
        tester, plus que difficile de répondre

    quoi que dit le debugger ? ( pas à pas ... )






¡————————¡——————————————————————————————————————————————————————————¡
|FireFox |regarder la "console d'erreurs" |
| | Outils / Console d'erreurs |
| | |
| | et mieux, télécharger FireBug |
¦————————¦——————————————————————————————————————————————————————————¦
|Internet|activer le deboggage : Outils/options Internet/Avancés |
|Explorer| dans la liste, sous "Navigation" : décocher |
| | ° Afficher une notification de chaque erreur de script |
| | ° Désactiver le débogage de Scripts (Internet Explorer) |
| | |
| | et mieux, télécharger le Debogger IE |
¦————————¦——————————————————————————————————————————————————————————¦
|K—Meleon|regarder la "console d'erreurs" |
| | Outils / Console d'erreurs |
¦————————¦——————————————————————————————————————————————————————————¦
|Opera |regarder la "console d'erreurs" |
| | utils / Asole d'erreurs |
¦————————¦——————————————————————————————————————————————————————————¦
|Safari |regarder Debug / Show JavaScript Console |
| | |
| |modif Fichier "Support:\Documents and Settings\utilisateur|
| |\Application Data\Apple Computer\Safari\Preferences.plist"|
| | y ajouter <key>IncludeDebugMenu</key> |
| | <true/> |
!————————!——————————————————————————————————————————————————————————!








<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
5
Date d'inscription
lundi 25 juin 2007
Statut
Membre
Dernière intervention
18 novembre 2007

J'ai un orobleme avec le code suivant avec IE y passe quand meme dans le 1er if alors qu'il devrait aller au else if d'après. Si je force le passage tous fonctionne correctement.

function getXhr()
{
    var xhr = null;
   

if (window.XMLHttpRequest)                
{
      // ! passage de IE alors qu'il devrait pas.
    xhr = new XMLHttpRequest();    
}
else if (window.ActiveXObject)                 
{
      xhr = new ActiveXObject("Microsoft.XMLHTTP");   // Internet Explorer
}
else
{
    alert("Pas bon");
}
 return xhr;
}

En résumé c'est window.XMLHttpRequest qui fait mal son boulot sous IE pourquoi je sais pas encore . Apperment il existe alors qu'il devrait pas.

Merci pour le débugueur.

Merci pour votre aide a bientot.
Messages postés
5
Date d'inscription
lundi 25 juin 2007
Statut
Membre
Dernière intervention
18 novembre 2007

Wiki:
Pour les autres navigateurs (ou à partir d'IE7), l'objet XMLHttpRequest est supporté nativement :

Ba pas chez moi, j'ai IE7 et ba ca marche pas alors que 
xhr = new ActiveXObject("Microsoft.XMLHTTP");

aucun probleme mais y di quand meme que l'objet XMLHttpRequest exist.
Messages postés
5
Date d'inscription
lundi 25 juin 2007
Statut
Membre
Dernière intervention
18 novembre 2007

Solution qui fonctionne avec IE7 et FF faudra que j'esaille avec d'autre navigateur:
Mais ca ne correspond pas au code qu'on trouve sur le web.
function getXhr()
{
    var xhr = null;
   
if (window.XMLHttpRequest)                 //  Objet de la fenêtre courant
{
    if (window.ActiveXObject)
    {
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else
    {
    xhr = new XMLHttpRequest(); 
    }//  Firefox, Safari, ...
}

else
{
    alert("Pas bon");
}
 return xhr;
}
Messages postés
5
Date d'inscription
lundi 25 juin 2007
Statut
Membre
Dernière intervention
18 novembre 2007

Merci pour ton code c'est impeck.