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 :

[POO] vérifier qu'une popup est ouverte ?


Sujet :

JavaScript

  1. #1
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut [POO] vérifier qu'une popup est ouverte ?
    Bonjour à tous.

    Je cherche désespérément à savoir si une fenêtre popup est ouverte.

    Je lance ma popup comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ma_fenetre = window.open('/mon/url','chat_window','width=630,height=515')
    Je sais que je peux tester si la popup a été fermée depuis la page "mère" en utilisant le .closed.

    Le soucis est que mon utilisateur peux naviguer dans la page mère, et cela ne s'applique donc plus dès que l'utilisateur a navigué...

    Y a-t-il un moyen quelconque de récupérer mon objet ma_fenetre une fois que l'utilisateur a navigué SVP ?

    En fait, dans le cas où l'utilisateur reclique sur le lien qui ouvre la popup, je ne veux rien faire si la popup existe déja (ou lui donner le focus). Actuellement, ça me recharge ma popup, ce qui est plus que gênant...

    d'avance à tous.

    PB

    EDIT PS : il est bien entendu inenvisageable d'utiliser une frame invisible

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour
    tu dois pouvoir t'inspirer du script donné ici par Auteur ...

    A+

  3. #3
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    Merci, mais le code donné par Auteur se heurte exactement à la même problématique que la mienne, à savoir la perte de l'objet fenFille au cas où l'utilisateur navigue

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Effectivement.
    Ce ce n'était pas ce thread auquel je pensais, mais je ne le retrouve plus (y avait un setInterval() dans la pop qui mettait à jour la mùère, je crois).
    Bref, ici Ricou13 semble avoir finalement trouver une solution que tu devrais pouvoir utiliser ...

    A+

  5. #5
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    avec un cookie ?

    Lors de l'ouverture de la pop-up, tu écris "true" dans le cookie et lors de la fermeture de la pop-up tu écris "false" dans le cookie... Comme ça si l'url de ta page mère change tu peux savoir à tout moment si la pop-up est ouverte ou non.

    Le seul inconvénient : tu ne peux pas échanger des informations de l'une vers l'autre.

  6. #6
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    un méga big merci de la mort qui tue à vous deux, j'ai opté pour la solution proposée par E.Bzz

    Et dire qu'il "suffisait" de lui passer une chaine vide comme URL, et que j'y ai passé ma journée d'hier

  7. #7
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    Citation Envoyé par titoumimi Voir le message
    un méga big merci de la mort qui tue à vous deux, j'ai opté pour la solution proposée par E.Bzz

    Et dire qu'il "suffisait" de lui passer une chaine vide comme URL, et que j'y ai passé ma journée d'hier
    J'avoue ne pas avoir bien compris le truc. Tu ne perds pas l'opener ?

  8. #8
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    Voici mon code complet :
    JS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // Lance la fenêtre popup de chat si elle n'est pas déja lancée, sinon lui donne le focus
    function load_chat_popup() {
    	url_to_load = '/chat/test';
    	popup_name = 'chat_window';
    	params = 'width=630,height=515';
     
    	chat_window = window.open('',popup_name, params);
    	if(chat_window.location.href == "about:blank") {
    		chat_window.location = url_to_load;
    	} else {
    		chat_window.focus();
    	}
    	return chat_window;
    }
    HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a onclick="load_chat_popup(); return false;" href="/user_info/view_profile/3">Lancer le chat</a>
    En fait, quand tu fais un chat_window = window.open('',popup_name, params);, si la popup n'existe pas, il la crée totalement vide. si elle existe déja, il se contente de récupérer l'objet associé, et ne reload rien du tout dedans.

    Il suffit ensuite de tester le location.href pour savoir si la popup est vide ou non. Si elle est vide, il n'y a plus qu'à la remplir, sinon à lui donner le focus

    (testé IE7 + FFX)

    Bref, une jolie magouille pour pouvoir récupérer un objet

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Je ne sais pas si cela focntionnera sous IE7 ... il n'aime pas trop les ouvertures de fenetre vide ...

    Mais il te suffirait de mettre une page blanche sur ton serveur et de pointer dessus

  10. #10
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    Sisi, testé sous IE7 sans soucis

  11. #11
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    alors ça doit être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.open('about:blank')
    quie IE 7 n'aime plus

  12. #12
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    J'ai cru que tu voulais échanger des informations entre la fenêtre mère et la pop-up tout en ayant la possibilité de naviguer aussi bien dans la pop-up que dans l'opener.

  13. #13
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    Citation Envoyé par Auteur Voir le message
    J'ai cru que tu voulais échanger des informations entre la fenêtre mère et la pop-up tout en ayant la possibilité de naviguer aussi bien dans la pop-up que dans l'opener.
    bah maintenant que j'arrive à récupérer ma popup quelles que soient les actions de mon utilisateur, je peux

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

Discussions similaires

  1. [WD14] Vérifier si un fichier est ouvert dans une autre application
    Par Gaautman dans le forum WinDev
    Réponses: 1
    Dernier message: 17/01/2010, 20h07
  2. comment detecter si une popup est ouverte
    Par Jacobian dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 30/10/2008, 15h54
  3. vérifier que une form est ouverte
    Par youcef_b_dz dans le forum Delphi
    Réponses: 2
    Dernier message: 23/08/2006, 17h41
  4. Tester si une popup est ouverte si oui en ouvrir une autre
    Par Prue dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 17/08/2005, 09h32
  5. Vérifier si une form est ouverte
    Par nivet dans le forum Langage
    Réponses: 6
    Dernier message: 23/11/2004, 09h17

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