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

jQuery Discussion :

AJAX sous IE 8, l'opération ne se termine pas


Sujet :

jQuery

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut AJAX sous IE 8, l'opération ne se termine pas
    Bonsoir tout le monde,

    J'ai un script en JS où j'utilise l'ajax ( sous jquery):

    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
    $(document).ready(function(){
     
     
     if( $(".accordeon").is(":hidden")) {
     
    	var id_usine = $(".accordeon:first").attr("id");
     
    	$.ajax({
    	   url: "index.php?page=unite&ajax=yes",
    	   global: false,
    	   type: "GET",
    	   data: "id="+id_usine ,
    	   success: function(list_vsx){
    			//On affiche la liste des vsx pour la première usine
    			$(".accordeon:first").attr("innerHTML", list_vsx);	 
    	   }
    	  }).responseText;
    	$(".accordeon").slideDown(200); 
    }
     
    });
    il marche parfaitement sur ff 3.5, la dernière version de chrome, safari et opera.

    Par contre sur IE8, il ne veut pas marcher , il me met comme erreur:

    Détails de l’erreur de la page Web

    Agent utilisateur : Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; FDM; InfoPath.2)
    Horodateur : Sat, 27 Mar 2010 18:50:43 UTC


    Message*: Les données nécessaires pour terminer cette opération ne sont pas encore disponibles.

    Ligne*: 8
    Caractère*: 2
    Code*: 0
    Quelqu'un aurait une idée du problème ?

    Je vous remercie d'avance,

    kasou

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 937
    Points
    22 937
    Billets dans le blog
    125
    Par défaut
    Bonsoir.

    Option dataType ? Elle n'est pas précisée, pour du XML IE ne fonctionne pas en local, mais sur un serveur distant oui !

    Les transactions AJAX sont asynchrones, votre demande de slideDown() arrivera avant la mise à jour.

    Pour mettre à jour le contenu HTML d'un élément, on se sert de html(), append() etc.

    Attribut innerHTML ? Si ce n'est pas un attribut personnel (le nom serait mal choisi), cela n'existe pas !

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour danielhagnoul, merci pour votre réponse.

    Pour l'option dataType, c'est du html qui est renvoyé, je viens de rajouter l'option dataType dans le script.

    Pour ce qui est de l'Attribut innerHTML, je ne le met pas comme nom d'attribut dans ma page html, mais cette 'technique' me permet de modifier le contenu entre mes balise qui ont l'id spécifié.

    Sinon, j'ai utilisé la fonction $.get au lieu d' $.ajax:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	$.get("index.php?page=unite&ajax=yes",
    	 { id: id_usine },
    	 function(list_vsx){
     
    	     //On affiche la liste des vsx pour l'usine sélectionnée
    	     $(".accordeon").attr("innerHTML", list_vsx); 	
    	 }
     
    	);
    Et ça marche nickel sur IE8 avec et sur les autres navigateurs.

    Mais j'aimerai bien savoir pourquoi cela ne marche pas sur IE si j'utilise $.ajax.


    kasou

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 937
    Points
    22 937
    Billets dans le blog
    125
    Par défaut
    Bonsoir.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // idée : dans votre code le résultat de responseText n'est pas affecté à une variable
    var data = $.ajax({ ... }).responseText;
    J'ai compris le truc, avec...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <script>
    	$(function(){
    		$("#conteneur").attr("innerHTML", "<span id='pID'>C'est bizarre ce truc !</span>");
    	});
    </script>
    ...à l'ouverture de la page, le contenu du paragraphe a changé !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <body>
    	<div id="conteneur">
    		<p id="pID">Un mot pour remplir</p>
    	</div>
    </body>
    C'est sans danger ce truc, c'est dans le manuel officiel ?

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour danielhagnoul,

    Pour le innerHTML avec .attr(), je ne sais pas si c'est dans le manuel, on m'a apprit comme ça pour remplacer le contenu.

    Je vais tester avec une variable pour mon $.ajax(), je vous tiens au courant ce soir.


    kasou

Discussions similaires

  1. [AJAX] AJAX sous IE et FF
    Par Zarx dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/08/2007, 14h24
  2. probleme avec ajax sous IE
    Par mathieu92 dans le forum ASP.NET
    Réponses: 8
    Dernier message: 22/06/2007, 15h02
  3. [AJAX] ajax sous firefox.
    Par nek_kro_kvlt dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/05/2007, 17h13
  4. [AJAX] Sous Firefox une de mes pages renvoi : failure code : 0x80004005
    Par ffwrude dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/04/2007, 11h43
  5. [AJAX] Div dynamique AJAX. Sous IE, les images ne s'affichent pas
    Par N3odyme dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/12/2006, 21h56

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