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 :

[Syntaxe]rafraichir une liste avec internet explorer


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de achos
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 147
    Par défaut [Syntaxe]rafraichir une liste avec internet explorer
    Bonjour tout le monde,
    j'ai 2 pages HTML suivante :
    index.html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <form name="monform">
    <select name="choix" id="choix">
    <option value="rabat">rabat</option>
    <option value="paris">paris</option>
    <option value="berlin">berlin</option>
    </select>
    <input type="button" value="new" onClick="window.open('popup.html','ajouter_ville','width=200,height=200')">
    </form>
    ajout.html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <script language="javascript">
    function refreshPage(newValue){
      var w = window.opener.document.getElementById('choix');
      var content = w.innerHTML;
       content += '<option value="' + newValue + '">' + newValue + '</option>';
       w.innerHTML = content;
    }
    </script>
    <form name="form">
    ville <input type="text" name="ville" onBlur="refreshPage(this.value)">
    <input type="button" value="ok" onClick="self.close();">
    </form>
    mon problème est que sous internet explorer la liste n'est pas affichée, elle est toute vide.
    j'ai tester le même script sous Mozilla Firefox et Opera et il fonctionne bien.
    pourquoi ça ne marche pas avec IE ? est ce qu'il y'a un autre moyen pour le faire fonctionner correctemet avec IE.

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    on ne créé pas une option avec innerHTML.
    cf. http://sergep.developpez.com/tutorie...ge=page_5#LV-B
    Puis regarde le paragraphe V-B-2-b où est expliqué comment est créé un select et ses options et le paragraphe V-B-2-c où est expliqué l'insertion d'une option dans la liste.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var elOption = new Option("Option", "valeur", false, false);
    var elSelect= document.getElemenById("idSelect");
     
    //Ajout dans le select de l'option
    elSelect.options.add(elOption);

  3. #3
    Membre confirmé Avatar de achos
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 147
    Par défaut
    Merci bien pour la réponse et pour l'article.
    je vais essayé de modifier mon script et on verra ce que ça donne.

  4. #4
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Citation Envoyé par achos
    Merci bien pour la réponse et pour l'article.
    je vais essayé de modifier mon script et on verra ce que ça donne.
    tiens moi au courant

  5. #5
    Membre confirmé Avatar de achos
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 147
    Par défaut
    j'ai essayé avec ce script mais ca ne donne rien.
    j'ai pas bien compris comment ça fonctionne, je veux juste savoir quel est le problème de mon script cité auparavent avec le navigateur internet explorer.

  6. #6
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Je me suis appuyé sur ces exemples pour ton script
    http://www.developpez.net/forums/sho...d.php?t=271424

    Dans un premier temps, j'accèdais à ta liste (getElementById()) dans une fonction de la pop-up et je la mettais à jour. L'ennui est que cela faisait planter IE. J'ai donc procédé autrement :

    Dans la pop-up j'appelle la fonction ajouterVille() où je récupère la valeur de l'input.

    Puis j'appelle la fonction ajouter() contenue dans index.html et à qui je transmets le nom de la ville et dans laquelle je mets à jour la liste. Du coup, j'accède à la liste des ville non plus à partir de la pop-up mais à partir de la fenêtre "opener".

    J'ai donc refait ton code :
    index.html
    Code html : 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
     
    <html>
    <head>
    <title></title>
     
    <script type="text/javascript">
    <!--
    var chargeOk = "false";
     
    function ouvreFille()
    {
     if (chargeOk=="false")  //pour vérifier que la pop-up a été ouverte
         window.open('popup.htm','ajouter_ville','width=400,height=200,status=yes');
    }
     
    function ajouter(ville)
    {
      var liste = document.getElementById("choix");
      var elOption = new Option(ville, ville, false, false);
     
      //Ajout dans le select de l'option
      liste.options.add(elOption);
      alert(ville+" a été ajoutée à la liste");
     
    }
    //-->
    </script>
     
    </head>
     
    <body>
    <form id="monform">
     
      <select id="choix">
      <option value="rabat">rabat</option>
      <option value="paris">paris</option>
      <option value="berlin">berlin</option>
      </select>
     
      <input type="button" value="new" onclick="ouvreFille()">
     
    </form>
     
    </body>
     
    </html>

    popup.html
    Code html : 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
     
    <html>
    <head>
    <title></title>
     
    <script type="text/javascript">
    <!--
    function charge()
    {
     //on confime a la fenetre mere que la pop-up est ouverte
     window.opener.chargeOk = "true";
    }
    function decharge()
    {
     //on confime a la fenetre mere que la pop-up est fermee
     window.opener.chargeOk = "false";
    }
     
    function ajouterVille()
    {
      var ville = document.getElementById("idText").value;
      //on transmet a la fonction ajouter() de la fenetre mere le nom de la ville
      window.opener.ajouter(ville);
    }
     
    function fermer()
    {
     window.close();
    }
     
    //-->
    </script>
     
     
    </head>
     
    <body onload="charge()" onunload="decharge()">
     
    Nom de la ville à ajouter&nbsp;:
    <input type="text" value="" id="idText" size="40">
    <br><br>
    <input type="button" value="Ajouter" onclick="ajouterVille()">
    <input type="button" value="Fermer fenêtre" onclick="fermer()">
     
     
    </body>
     
    </html>

Discussions similaires

  1. Réponses: 11
    Dernier message: 13/11/2008, 23h18
  2. Centrage d'une page avec Internet Explorer
    Par kuja2053 dans le forum Mise en page CSS
    Réponses: 12
    Dernier message: 14/09/2007, 12h42
  3. Réponses: 3
    Dernier message: 03/10/2006, 06h00
  4. rafraichir une liste avec un <SELECT>
    Par karibouxe dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 20/02/2006, 09h05
  5. Forcer une page à s'ouvrir avec Internet Explorer
    Par alexbubs dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 31/10/2005, 10h32

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