IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Mais que fait IE7 ?


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 114
    Points : 122
    Points
    122
    Par défaut Mais que fait IE7 ?
    Hello à tous,

    Voici un morceau de code qui fonctionne nickel pour chager un div contenu dans le body d'une page. Cela fonctionne aussi bien sous IE7 que sous FF

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    // -----------------------------------------------------------------------------------
    //
    // getHTTPObject()
    // Pour créer l'objet qui va gérer la requête http
    //
     
    function getHTTPObject() 
    {
    	var xmlhttp;
     
    	if (window.XMLHttpRequest) 
    	{
           xmlhttp = new XMLHttpRequest();
     
           // Évite un bug du navigateur Safari :
           if (xmlhttp.overrideMimeType) 
           {
             xmlhttp.overrideMimeType("text/xml");
           }
     
        } 
        else 
        {
           if (window.ActiveXObject) 
           {
     
             try 
             { // essaie de charger l'objet pour IE
               xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
             } 
             catch (e) 
             {
               try 
               { // essaie de charger l'objet pour une autre version IE
                 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
               } 
               catch (e) 
               {
                 window.alert("Votre navigateur ne prend pas en charge l'objet XMLHTTPRequest.");
               } // try-catch
             } // try-catch
           }
        } // if-else
     
      	return xmlhttp;
    }
     
    //
    // LoadDiv()
    // Envoi la requête http en synchrone et récupère le résultat
    //
    function LoadDiv( divName, url )
    {
    	// Initialization
    	var http = getHTTPObject();						
    	var dest = document.getElementById(divName);  
     
    	// send request
    	http.open("GET", url, true);
    	http.onreadystatechange = function()
    							  {
    						        if ( http.readyState == 4  && http.status == 200 ) 
    						        {
    						            dest.innerHTML = http.responseText;
    						        }
    							  };
    	http.send(null);
    }
    Par contre pour charger un div contenu dans un div cela échoue lamentablement dans IE7 alors que tout fonctionne bien sous FF

    IE7 bloque sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dest.innerHTML = http.responseText;
    avec l'erreur d'une clarté à toute épreuve :
    Erreur d'exécution inconnue

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 114
    Points : 122
    Points
    122
    Par défaut
    Après une bonne nuit de sommeil j'ai eu l'illumination

    Le problème est que ma page aspx charge une autre page aspx dans le div.
    Et que comme les deux pages sont liées à une BDD chacune d'elle a sont petit formulaire serveur (ben vi à cause du lien à la BDD).

    Et là forcément quand on charge la page dans la page il y a un joli méli-mélo au niveau de la gestion des postback car le viewstate de la page charger écrase le viewstate de la page principale. Par conséquent IE7 préfère interdire le chargement de la page plutôt que de mettre en vrac la page principale alors que FF ne fait pas cette gestion

    voili voilou. J'ai plus qu'a désactiver le viewstate et cela devrait fonctionner

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 114
    Points : 122
    Points
    122
    Par défaut
    Je n'ai pas réussi à supprimer le viewstate

    J'ai donc du sortir l'arme absolu : le regexp

    voici la fonction modifier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    //
    // LoadDiv()
    // Envoi la requête http en synchrone et récupère le résultat
    //
    function LoadDiv( divName, url )
    {
    	// Initialization
    	var http = getHTTPObject();						
    	var dest = document.getElementById(divName);  
     
    	// send request
    	http.open("GET", url, true);
    	http.onreadystatechange = function()
    							  {
    						        if ( http.readyState == 4  && http.status == 200 ) 
    						        {
    						            var html = http.responseText;
    						            html = html.replace( /<form.*>/gi, " " );
    						            html = html.replace( /<\/form.*>/gi, " " );
    						            html = html.replace( /<input type="hidden".*>/gi, " " );
    						            Element.setInnerHTML( divName, html );
    						        }
    							  };
    	http.send(null);
    }
    et hop tout fonctionne bien maintenant

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tableaux] Mais que fait cette condition exactement?
    Par pierrot10 dans le forum Langage
    Réponses: 5
    Dernier message: 21/09/2006, 12h36
  2. [ Eclipse3.0 ] Mais que fait le debogueur ?
    Par Bz dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 07/07/2005, 14h31
  3. mais que fait upper_range() dans un multimap?
    Par porcher dans le forum C++
    Réponses: 7
    Dernier message: 18/02/2005, 22h21
  4. Mais que fait static ???
    Par elsargento dans le forum C
    Réponses: 4
    Dernier message: 25/09/2003, 09h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo