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 :

Ouverture puis fermeture de popup => Où est le bug ?


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 17
    Points : 11
    Points
    11
    Par défaut Ouverture puis fermeture de popup => Où est le bug ?
    Bonjour,
    Je viens vers vous car je rencontre un soucis que je ne reussi pas à comprendre... alors d'ici à le resoudre ^^

    Je m'explique :

    Je suis en train de faire une petite page HTML/JavaScript qui contient un TEXTAREA et un bouton.

    Ce que je veux c'est que, quand on clic sur le bouton,
    --> le contenu du TEXTAREA soit analysé,
    --> si des URL existent dans son contenu alors un popup s'ouvre sur chaque URL (donc plusieurs popup s'il y a plusieurs URL)
    --> et se referme automatiquement au bout de quelques secondes aprés son ouverture.

    La partie analyse et extraction des URL de la TEXTAREA fonctionne bien, et dés que je trouve une URL, j'execute ma fonction d'ouverture/fermeture de popup (voir le code ci-dessous).

    Ainsi si ma TEXTAREA contient plusieurs URL, j'execute ma fonction d'ouverture/fermeture de popup plusieurs fois (fonction qui recoit en parametre l'URL)

    Le soucis est que cela ne fonctionne pas comme prévu. Pire, suivant les versions de Internet Explorer que j'utilise le problémé n'est pas le même :

    Sur IE8 -> ça ouvre un popup et les differentes URL sont chargées les une apres les autres dans ce même popup, puis le popup se ferme
    --> j'aimerais que chaque URL s'ouvre dans un popup different, puis que chaque popup se referme 5 secondes apres son ouverture

    Sur IE9 -> Plusieurs popup s'ouvrent (avec chacun une URL différente... donc ça c'est bon), mais aucun ne se referme (dans le meilleur des cas seul le dernier ouvert se referme)

    Voici ci-dessous les petites fonctions que j'utilise pour l'ouverture/fermeture des popup.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function ouvrirPopup(page) {
    newPop = window.open(page,'newwin','width=1000,height=1000');
    setTimeout('closePopup(newPop)', 5000); //Fermeture après 5 secondes
    }
     
    function closePopup(newPop) {
    newPop.close();				
    }
    que j'execute via une commande du type :
    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
     
    var traitement=0;
     
    while (traitement==0) {
     
         // Cherche URL dans le contenu de la TEXTAREA
         ... 
         //(je vous passe les détails de la recherche d'URL dans le contenu de la TEXTAREA) ...
     
         // Si, au cours de la recherche, on arrive a la fin du contenu 
         // de la TEXTEAREA alors on change la valeur de la variable "traitement" 
         // (traitement=1) pour sortir de la boucle WHILE et ainsi arreter le
         // traitement
     
         // Si une URL est trouvée, elle est chargée dans une variable
         // appelée "URL" (original non ? ^^)
         var url=texte.substring(debut, deb_suite);
     
         // Puis on lance l'ouverture/fermeture d'un popup sur cette URL
        if (url<>'') {
            // Ouvre un popup
           ouvrirPopup(url);
        }
     
    } // FIN de la boucle WHILE traitement==0
    Auriez-vous une idée de où ça coince, et comment y remédier SVP ?
    Merci d'avance pour votre aide.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    newPop = window.open(page,'newwin','width=1000,height=1000');
    Tu définis une variable globale dont tu modifies la valeur à chaque itération, alors ne t'attends pas à ce que les valeurs antérieures soient conservées et que le navigateur utilise ses dons d'extra-lucidité pour déterminer à laquelle de ces valeurs tu te réfères...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    ce qui veux dire qu'un simple "var" devant la déclaration suffirait ?
    du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var newPop = window.open(page,'newwin','width=1000,height=1000');
    (ca n'a pas l'air de marcher...)

    Peux tu m'aider sur la maniere de déclarer cette variable, puis de la "remplir" a chaque itération stp ?

  4. #4
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Au lieu de stocker la référence de la fenêtre dans une variable newPop, utilise un tableau newPops que tu alimentes au fur et à mesure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //newPop = window.open(page,'newwin','width=1000,height=1000');
    newPop.push(window.open(page,'newwin','width=1000,height=1000'));
    ...puis il faudra modifier les cas d'utilisation de la variable pour accéder à chaque élément itérativement ^^

Discussions similaires

  1. Ouverture et fermeture popup
    Par Micke7 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/02/2008, 10h41
  2. Ouverture et fermeture popup
    Par cybernetique dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 24/01/2008, 21h33
  3. Ouverture d'explorer puis fermeture 2s après
    Par darkwall_37 dans le forum Windows
    Réponses: 5
    Dernier message: 01/11/2007, 18h57
  4. [Win2000 SRV] Ouverture de session et puis fermeture tout de suite
    Par annedeblois dans le forum Windows Serveur
    Réponses: 6
    Dernier message: 20/10/2007, 10h36

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