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 :

surchargement de window.close()


Sujet :

JavaScript

  1. #1
    Membre confirmé Avatar de yjuliet
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Août 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 362
    Points : 460
    Points
    460
    Par défaut surchargement de window.close()
    Bonjour.

    Je suis à la recherge d'une solution pour appeler une action sur fermeture d'une fenêtre popup (et uniqement la fermeture, du coup, le document.unload ne me sert à rien). Après quelques recherches, qui m'ont mené sur ce post
    http://www.developpez.net/forums/sho...nement+onclose
    j'ai vu qu'il n'y avait pas d'évènement onclose sur les fenêtres.

    Etant plus orienté sur le développement Java, je me suis demandé si il n'était pas possible de "simplement" surcharger la méthode window.close(), avec éventuellement une extension de la classe window pour effectuer l'opération ...

    Merci de vos commentaires et propositions

  2. #2
    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 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    uniquement à la fermeture ?
    heu quelle est la subtilité ?
    sur quel genre d'evènement veux tu lancer la fonctin et sur que autre ne pas la lancer ?

  3. #3
    Membre confirmé Avatar de yjuliet
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Août 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 362
    Points : 460
    Points
    460
    Par défaut
    j'ai besoin de gérer uniquement
    * Invoke the windowclose method.
    * Close the current browser window.

    Sur la fermeture de ces fenêtres, il me faut appeler une fonction AJAX pour mettre à jour une donnée dans les variables de session du serveur, me permettant de ré-ouvrir la fenêtre dans la fenêtre "principale" du navigateur.

    Les fenêtres dont je veux gérer le comportement sont faite pour l'affichage en plein écran de portlets qui doivent être iconifiées dans le portail lors de la fermeture de la popup.

    J'aurais aussi la possibilité de gérer sur la fenêtre parente une boucle de vérification qui checke "popupHandler.closed()" à intervalles de temps régulier, mais cette solution me dérange un peu ... mais je la garde de côté en réserve...

  4. #4
    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 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    avec window.prototype pas besoin de gerer tes fermetures de fenetres ...

  5. #5
    Membre confirmé Avatar de yjuliet
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Août 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 362
    Points : 460
    Points
    460
    Par défaut
    Citation Envoyé par SpaceFrog
    avec window.prototype pas besoin de gerer tes fermetures de fenetres ...
    ??? peux-tu m'en dire plus ?

  6. #6
    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 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    c'est une librairie basée sur le framework prototype qui permet de créer et gérer des pseudo fenêtres qui sont en fait des divs sur la même page.
    En plus d'offrir de nombreuses possibilités graphiques, on peut également gerer facilement le contenu des fenêtres ...

  7. #7
    Membre confirmé Avatar de yjuliet
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Août 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 362
    Points : 460
    Points
    460
    Par défaut
    les pseudo-fenêtre ne me conviennent pas, j'ai besoin de popups qui passent en plein écran (sans aucune barre d'outils, ni titre, ni adresse pour avoir suffisamment d'espace visible sur l'écran, vu que tout le monde n'a pas le plaisir d'avoir un Apple Cinema Display 30" et sa résolution ...), et laissent accessibles les autres fenêtres à l'aide d'un simple "alt-tab".

    Par ailleurs, l'application dans laquelle je travaille (Sun Portal 7.1. upd. 1) se sert déjà massivement du framework Dojo et de pas mal de classes JS développées exprès... Je n'ai donc pas tellement le choix d'un framework ...

  8. #8
    Membre confirmé Avatar de yjuliet
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Août 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 362
    Points : 460
    Points
    460
    Par défaut
    Finalement, j'ai mis une boucle pour surveiller la fermeture des popups. Le changement de page du parent me fermant toutes les popups, je n'ai pas de crainte sur la propagation de la surveillance d'une page à l'autre.

    Merci quand même pour la proposition.

  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 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    oui à part une surveillance depuis là mère dans un setInterval (certes assez lourd) je ne vois pas d'autre moyen ...

  10. #10
    Membre confirmé Avatar de yjuliet
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Août 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 362
    Points : 460
    Points
    460
    Par défaut
    Après un coup d'oeil rapide sur le site d'une boite de Redmond, j'ai vu que la propriété window.closed était impliquée dans un bug déclaré de M$IE et bien que le correctif soit sorti et qu'il semblerait que ça ne touche pas IE7, je reste méfiant ... en testant sur ma machine (presque à jour, vu que je suis avec IE6 mais patché), bah, plantage systématique ...

    Voici ma gestion actuelle des popups :
    Code JavaScript : 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
     
    var daPopup = window.open( url, channelName, "directories=no,channelmode=yes,fullscreen=yes,location=no,menubar=no,resizable=no,status=no,titlebar=no,toolbar=no,top=0,left=0,width="+screen.width+",height="+screen.height, true);
    var myPopup = {};
        myPopup.window = daPopup;
        myPopup.container = currentTab;
        myPopup.channel = channel;
        if (!popups) {
            popups= new dojo.collections.ArrayList();
        }
        popups.add( myPopup );
     
        if (popups.count==1)  {
            // boucle infinie de vérification que les fenêtres de popup sont toujours ouvertes
            popupsLoop = setInterval("handleClosedPopups()", 500);        
        }
     
    /**
     * Fonction qui gère les popups qui pourraient être fermées
     */
    handleClosedPopups = function () {
        var it = popups.getIterator();
        // for ( i=popups.length-1; i>=0; i-- ) {
        while (!it.atEnd()) {
            var popup = it.get();
            if ( popup.window.closed ) {
                // removeChannelOnClose( popup.channel, popup.container );
                popup.channel.container.handleChannelRemoveEvent(popup.channel);
                popups.remove(popup);
            }
        }
        if (popups.count<1) {
            clearInterval( popupsLoop );
        }
    }

    Tout ceci fonctionne à merveille avec des navigateurs sérieux, mais certains restent capricieux...

Discussions similaires

  1. IE9 surcharger window.close()
    Par Paul TOTH dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 27/07/2011, 11h37
  2. Problème avec window.close()
    Par Didje dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 13/12/2005, 17h32
  3. window.close();
    Par 12_darte_12 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/10/2005, 14h37
  4. après un window.close() la page se réouvre toute seule???
    Par linux dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/08/2005, 17h29
  5. On Windows Closing ???
    Par BainE dans le forum MFC
    Réponses: 4
    Dernier message: 29/08/2005, 12h38

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