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 :

Focus sur fenêtre parent à la fermeture d'une pop up


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 340
    Points : 139
    Points
    139
    Par défaut Focus sur fenêtre parent à la fermeture d'une pop up
    J'ai une appli web, dont une page montre la liste des messages postés sur un forum. Sur chaque ligne de la liste, une image permet lorsque l'on clique dessus l'ouverture d'un pop up pour écrire un message (c'est une interface de saisie rapide dirons nous). Cette image est affichée avec une valeur alpha à 40% s'il n'y a aucune réponse sur le post, et normale sinon.
    Mon problème, c'est qu'en postant une réponse, je n'arrive pas à mettre à jour le style de l'image.
    Dans le traitement du post de mon message, je fais les traitements :
    - removeClass (je retire la class css de l'image, afin qu'elle s'affiche normalement)
    - window.close
    - appel d'une méthode javascript (RefreshOnDemand) qui va rafraichir la table jquery qui contient la liste des messages, pour ne recharger que le div qui contient les données

    le truc, c'est que quelque chose dans la séquence ne fonctionne pas correctement, parce que le changement visuel n'est pas effectif une fois la fenêtre fermée. Il faut que je provoque un appel manuel à cette fonction RefreshOnDemand (sur un évènement programme sur la touche F8) pour obtenir que le visuel de l'image change...

    La question est donc : comment l'obtenir directement à la fermeture de la popup?

    J'ai une intuition qui me dit que c'est un pb de focus. En effet, RefreshOnDemand recharge les données dans un div, qui a pour id "display". Et la seule explication que je vois, c'est que l'appel à cette fonction se fait dans le contexte de la pop up, et que cet id n'existe pas.
    Il faudrait donc lui faire comprendre que c'est dans la fenêtre parent qu'il doit chercher...

    Ou alors, s'il existe un évènement OnClosed que capterait la fenêtre parente, que je branche un écouteur afin qu'il déclanche lui même l'appel à la fonction sur cet évènement OnClosed...

    merci pour votre aide

  2. #2
    Membre averti Avatar de Nicopilami
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 339
    Points
    339
    Par défaut
    Hello
    est-ce que le fait d'utiliser une fenetre modale ne serait pas plus simple ?

    bye
    Nico

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 340
    Points : 139
    Points
    139
    Par défaut
    j'ai bien essayé avec une fenêtre modale. Mais le problème reste inchangé.
    A l'appel du window.close(), l'appel se fait dans le contexte de la pop up, et l'id sur lequel se fait le rafraichissement Jquery n'existe pas dans la pop up, mais dans la fenêtre parente...

  4. #4
    Membre averti Avatar de Nicopilami
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 339
    Points
    339
    Par défaut
    Rebonjour

    Citation Envoyé par michaeljeru Voir le message
    j'ai bien essayé avec une fenêtre modale. Mais le problème reste inchangé.
    A l'appel du window.close(), l'appel se fait dans le contexte de la pop up, et l'id sur lequel se fait le rafraichissement Jquery n'existe pas dans la pop up, mais dans la fenêtre parente...
    oui mais est-ce que tu ne pourrais pas créer le window.showmodal... depuis l'intérieur d'une fonction de la fenetre mere, récupérer la valeur renvoyée (var toto=window.showModal... et continuer ta fonction ?
    dans ce cas, ta fonction parente va se mettre en pause en attendant que tu renvoie la valeur, puis continuera une fois qu'elle l'aura recue; Du coup ensuite, tu pourras faire ce que tu veux dans la suite de ta fonction de la page mère

    bye
    Nico

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 340
    Points : 139
    Points
    139
    Par défaut
    bien vu !!

    je fais var toto = window.showModalDialog(...);
    puis refreshOnDemand();

    et cela me donne bien le résultat escompté !

    Merci de ton aide

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 22/02/2009, 14h36
  2. garder le focus sur Word lors de fermeture formulaire
    Par wulfram dans le forum VBA Access
    Réponses: 2
    Dernier message: 24/01/2009, 14h19
  3. Problème de focus sur fenêtre d'erreur
    Par Djoul dans le forum VBScript
    Réponses: 1
    Dernier message: 08/07/2008, 16h24
  4. Rafraichir une page parente dés fermeture d'une popup
    Par bilou95 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/08/2007, 16h11
  5. Réponses: 2
    Dernier message: 19/08/2003, 15h45

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