[JS] ajax bloque avec IE

Résolu
neoncyber Messages postés 5 Date d'inscription lundi 25 juin 2007 Statut Membre Dernière intervention 18 novembre 2007 - 17 nov. 2007 à 17:02
neoncyber Messages postés 5 Date d'inscription lundi 25 juin 2007 Statut Membre Dernière intervention 18 novembre 2007 - 18 nov. 2007 à 15:34
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

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
18 nov. 2007 à 15:29
>>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]
3
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
18 nov. 2007 à 13:57
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]
0
neoncyber Messages postés 5 Date d'inscription lundi 25 juin 2007 Statut Membre Dernière intervention 18 novembre 2007
18 nov. 2007 à 15:09
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.
0
neoncyber Messages postés 5 Date d'inscription lundi 25 juin 2007 Statut Membre Dernière intervention 18 novembre 2007
18 nov. 2007 à 15:17
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
neoncyber Messages postés 5 Date d'inscription lundi 25 juin 2007 Statut Membre Dernière intervention 18 novembre 2007
18 nov. 2007 à 15:30
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;
}
0
neoncyber Messages postés 5 Date d'inscription lundi 25 juin 2007 Statut Membre Dernière intervention 18 novembre 2007
18 nov. 2007 à 15:34
Merci pour ton code c'est impeck.
0
Rejoignez-nous