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 :

Comment fermer la fenêtre ouverte par un formulaire à partir de la fenêtre principale ?


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 100
    Points : 48
    Points
    48
    Par défaut Comment fermer la fenêtre ouverte par un formulaire à partir de la fenêtre principale ?
    Bonjour,

    J'ai un formulaire qui m'ouvre une nouvelle fenetre
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action="http://maps.google.fr/maps" id="it_form" method="get"  target="popup_itineraire">
    J'ai nommé la target de façon à pouvoir supprimer la fenêtre popup dans la fenetre principale, mais "popup_itineraire.close()" ne fonctionne pas.
    Comment puis-je faire?

    Merci
    Trachy
    Bonjour,


    Merci d'avance,
    Philou

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 050
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 050
    Points : 44 568
    Points
    44 568
    Par défaut
    Bonjour,
    tu ne peux faire un Element.close(), qui si celui ci a été crée via la méthode window.open.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 100
    Points : 48
    Points
    48
    Par défaut
    Bonjour No smoking,

    Et donc, rien n'a été fait pour fermer une fenêtre ouverte par un formulaire présent dans la fenêtre principale? Même en ayant pris soin de nommer le paramètre Target?

    Trachy
    Bonjour,


    Merci d'avance,
    Philou

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 050
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 050
    Points : 44 568
    Points
    44 568
    Par défaut
    Et donc, rien n'a été fait pour fermer une fenêtre ouverte...
    ben si!! utilise un window.open.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function fermeFenetre( nom_fenetre){
      var oWin = window.open( '', nom_fenetre);
      oWin.close();
    }

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 100
    Points : 48
    Points
    48
    Par défaut
    Bonjour Nosmoking,

    Merci pour ta réponse, c'est nickel.
    Refaire un window.open(), alors qu'elle est déjà ouverte, pour mieux la refermer, je m'en souviendrai

    Trachy
    Bonjour,


    Merci d'avance,
    Philou

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 100
    Points : 48
    Points
    48
    Par défaut
    J'ai tout de même un petit soucis, car la fermeture de la fenêtre "popup_itineraire" est appelée sur l'évènement focus de la fenêtre principale.

    Avant de fermer cette fenêtre j'aimerais donc savoir si elle existe, car sinon, je tourne en boucle.

    comment le savoir?

    Bien sûr je peux mettre un flag dans l'exécution du formulaire pour connaitre son existence, mais y a t'il une autre manière de procéder?

    Merci

    Trachy
    Bonjour,


    Merci d'avance,
    Philou

  7. #7
    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 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    avec un if ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  8. #8
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 050
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 050
    Points : 44 568
    Points
    44 568
    Par défaut
    J'ai tout de même un petit soucis, car la fermeture de la fenêtre "popup_itineraire" est appelée sur l'évènement focus de la fenêtre principale.
    je ne vois pas le soucis, avec la fonction proposée on ouvre la fenêtre et/ou on remplace son contenu si déjà affichée et on la ferme.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 100
    Points : 48
    Points
    48
    Par défaut
    la fonction fermeture ferme la fenêtre itineraire, et redonnes le focus à la fenêtre principale, donc réenchenche la fonction fermeture qui ouvre la fenêtre popup itineraire avant de la refermer (donc perte de focus, puis à nouveau focus de la fenêtre principale) donc réenclenchement de la fonction fermeture, etc ...

    Je veux simplement savoir comment tester l'existence de la fenêtre 'popup_itineraire', sinon je me débrouillerai avec un flag.

    Trachy
    Bonjour,


    Merci d'avance,
    Philou

  10. #10
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 050
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 050
    Points : 44 568
    Points
    44 568
    Par défaut
    Dans ce cas déplace la fermeture dans le code de la page du formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    window.onblur = function(){
        this.close();
    }

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 100
    Points : 48
    Points
    48
    Par défaut
    Bonjour Nosmoking,

    Sauf que le formulaire est dans la page de la fenêtre principale, et qu'il ouvre dans une autre fenêtre la page itineraire Google Maps "http://maps.google.fr/maps" (action) avec mes paramètres en get. Je ne peut donc mettre aucune fonction onblur() sur cette nouvelle page.

    Je m'en suis sorti avec un flag positionné lorsque je clique sur le bouton itinéraire de mon formulaire, ce n'est pas très élégant, mais cela marche.
    J'arrive donc à faire disparaitre la page itinéraire lorsque le focus revient sur la fenêtre principale, en ne fermant la fenêtre de la page itinéraire que si elle a été crée, et donc j'évite les effets indésirables.

    Par contre ce que je désire faire, si l'utilisateur clique par inadvertance sur le bouton close de la fenêtre principale au lieu de reprendre le focus (je fais des applis pour tablettes, dans le cas des onglets cela peut arriver), c'est lui afficher un message dans la popup l'avertissant de sa mésaventure et de la procédure pour réinitialiser l'application. C'est facile à faire si la fenêtre créée est un popup ouvert avec window.open, car je mets un délai sur la fonction focus de la page principale, et en cas d'exit je neutralise la fonction de fermeture du popup, ce qui fait que je peux envoyer un alert sur la page popup.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(popup!=null){popup.alert("texte....");}
    dans le cas de de ma fenêtre itineraire cala ne fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(flag_popup_itineraire==1){
      var oWin = window.open( '', "popup_itineraire");oWin.alert("texte....");
    }
    Je peux maintenir la page itinéraire à l'écran, mais je ne peux afficher le message

    Trachy
    Bonjour,


    Merci d'avance,
    Philou

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 100
    Points : 48
    Points
    48
    Par défaut
    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(flag_popup_itineraire==1){
      var oWin = window.open( 'image.jpg', "popup_itineraire");
    }
    avec image.jpg contenant mon message d'avertissement en dur, cela marche, mais cela n'est pas pratique pour traiter des langues différentes, car il faut faire autant d'image, et en plus gérer les évolutions de texte, donc à proscrire.

    J'ai essayer avec une image transparente,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(flag_popup_itineraire==1){
      var oWin = window.open( 'image_transparente.jpg', "popup_itineraire");
      oWin.alert("texte....");
    }
    mais la deuxième partie oWin.alert("texte....") n'est pas déclenchée


    En fait ce que j'aimerai c'est savoir comment faire un alert sur ma page itineraire, crée ainsi via un formulaire.

    Trachy
    Bonjour,


    Merci d'avance,
    Philou

  13. #13
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 050
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 050
    Points : 44 568
    Points
    44 568
    Par défaut
    oWin.alert("texte....");
    est une pure invention de ta part, alert et une function appartenant à l'objet window point final, sauf à être redéfinie.

    J'ai l'impression qu'il te suffit de mettre sur le onunload de ta page principale la fermeture de la fenêtre Image.

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 100
    Points : 48
    Points
    48
    Par défaut
    Si la popup a été ouverte par un window.open le popup.alert marche très bien, et ce quelque soit le navigateur.
    Actuellement la fonction exit() qui est dans le unload(), parvient très bien à fermer les fenetres qu'elles aient été ouvertes par window.open ou par formulaire.
    Le soucis c'est que j'arrive à afficher le message d'avertissement sur la fenetre popup avant sa fermeture, ce n'est pas le cas pour la fenêtre itinéraire créée par le formulaire . le onbeforeunload serait séduisant, car il se déclenche avant le unload mais malheureusement aussi au rechargement de la page, ce qui risque de poser problème.
    J'ai essayé également d'ouvrir dans la fonction exit() (unload) une nouvelle fenêtre (ni la fenêtre itinéraire, ni la popup), et d'afficher le message alert dans cette fenêtre vierge. Cela marche bien sous Windows quelque soit le navigateur. Sous Android, cela fonctionne sous Firefox, mais ni sous chrome ou IE .
    Bon tant pis!

    Trachy
    Bonjour,


    Merci d'avance,
    Philou

  15. #15
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 050
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 050
    Points : 44 568
    Points
    44 568
    Par défaut
    Si la popup a été ouverte par un window.open le popup.alert marche très bien, et ce quelque soit le navigateur.
    on est bien d'accord même si mon message ne traduit pas du tout ce que je voulais mettre

    Une question comme cela au passage, pourquoi ne pas passer directement par une popup ou une popin, la question de la gestion serait réglée?

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 100
    Points : 48
    Points
    48
    Par défaut
    Tu as raison Nosmoking. Je n'ai nul besoin de mettre un action dans le formulaire, je peux ouvrir un simple popup et l'affaire est réglée.

    Trachy
    Bonjour,


    Merci d'avance,
    Philou

  17. #17
    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 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Ceci étant les popups c'est has been, l'avenir est aux popins, on reste ainsi sur la même page, la gestion en est simplifiée...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

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

Discussions similaires

  1. Comment fermer un programme ouvert avec la fonction Shell
    Par nicolas2603 dans le forum VBA Access
    Réponses: 13
    Dernier message: 08/02/2008, 20h01
  2. Réponses: 9
    Dernier message: 18/06/2007, 01h25
  3. Réponses: 2
    Dernier message: 06/02/2007, 17h18
  4. Positionner une fenêtre ouverte par un shell
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 08/12/2006, 08h33
  5. Fermer fenêtre ouverte par un window.open()
    Par NikoBe dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 15/10/2006, 12h47

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