Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/10/2011, 15h37   #1
Invité de passage
 
Inscription : mars 2008
Messages : 9
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 9
Points : 1
Points : 1
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 :
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 :
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.
TheYoMan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 15h45   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 789
Points : 35 789
Code :
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...
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 15h49   #3
Invité de passage
 
Inscription : mars 2008
Messages : 9
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 9
Points : 1
Points : 1
ce qui veux dire qu'un simple "var" devant la déclaration suffirait ?
du genre :

Code :
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 ?
TheYoMan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 16h57   #4
Expert Confirmé Sénior
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 574
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 574
Points : 4 077
Points : 4 077
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 :
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 ^^
__________________

...pour les linguistes et les curieux >>> générateur de phrases aléatoires

__________________
RomainVALERI est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h05.


 
 
 
 
Partenaires

Hébergement Web