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 :

forcer lefocus d'un window.open


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 201
    Par défaut forcer lefocus d'un window.open
    bonjour,

    peut on forcer une page ouverte par window.open à rester en premier plan tant qu'elle n'est pas fermée?

    Dans cet esprit j'ai trouvé window.showModalDialog, qui collai exactement à ce que je recherche, mais j'ai des bizareries qui se passent ensuite :

    Je m'explique
    La fenetre que j'ouvre est un calendrier en php, lorsque je clic sur un jour le calendrier doit se fermer et la date s'inscrire dans le champs prévu à cet éffet(par une fonction js ReturnDate utilisant window.opener).

    Avec window.open ça fonctionne très bien, mais avec showModalDialog lorsque je clic sur ma date ça m'ouvre une nouvelle fenetre ayant comme adresse ReturnDate('date sélectionnée')...rien à comprendre, pourquoi une telle différence entre les deux méthodes

  2. #2
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    window.open().focus()

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 201
    Par défaut
    Merci.
    cela permet d'ouvrir la fenetre en 1er plan, mais si je clic sur une autre fenetre je perd le focus. Ce que je cherche à faire c'est garder le focus tant que je n'ai rien choisi, d'où le window.showModalDialog que je n'arrive pas à faire fonctionner comme je veux...

  4. #4
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var w=window.open();
    w.focus();
    w.onblur=function() { this.focus() }

  5. #5
    Expert confirmé

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Par défaut
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var vReturn = window.showModalDialog(<url>, self, <options>);

    Puis dans la fenetre modale :

    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var opener = window.dialogArguments;

    Voila

    PS : window.opener n'existe pas dans une fenetre modale.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 201
    Par défaut
    Merci pour ta réponse mais à quel moment je doi créer vReturn et quand l'utiliser?

    là j'ai juste modifié ma fonction return date :

    Code : 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
     
    function returnDate(d) {
       txt = d;
    var tab = txt.split("-");
    var annee = tab[0];
    var mois = tab[1];
    var jour = tab[2];
    var opener = window.dialogArguments;
     
        var nom =opener.dateField.id;
     
           opener.dateField.value = jour + '/' + mois + '/' + annee;
     
     
        window.close();
     
    }

  7. #7
    Expert confirmé

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Par défaut
    Citation Envoyé par Mat_DZ
    Merci pour ta réponse mais à quel moment je doi créer vReturn et quand l'utiliser?

    là j'ai juste modifié ma fonction return date :
    Et ça marche pas, ça? (si tu as ouvert ta fenetre modale de la façon correcte?)

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 201
    Par défaut
    voiçi ma fonction pour ouvrir ma page:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    function openCalendar(form, field, type) {
     
         window.open("calendrier.php", "Calendrier","width=335,height=210,status=yes,left=" +((screen.width - 460)/2) + ",top=" + ((screen.height - 150)/2) ).focus()
     
     //window.showModalDialog("calendrier.php","Calendrier","dialogWidth:335px;dialogHeight:230px;center:1;scroll:0;help:0;status:0");
     
        dateField = eval("document." + form + "." + field);
        dateType = type;
     
    }



    et voiçi ma fonction returndate, placée sur le clic d'une date de mon calendrier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    function returnDate(d) {
       txt = d;
    var tab = txt.split("-");
    var annee = tab[0];
    var mois = tab[1];
    var jour = tab[2];
     
    window.opener.dateField.value = jour + '/' + mois + '/' + annee;
     
    window.close();
    }
    Au cas où...

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/01/2012, 09h58
  2. coordonnées d'une fenêtre avec window.open
    Par neecolas dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/05/2005, 09h08
  3. Problème de titre avec la fonction window.open
    Par kloss dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/04/2005, 18h34
  4. window.opener ____ perdu
    Par camyo dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 10/02/2005, 16h01
  5. QueryString avec window.Open ??
    Par christine dans le forum ASP
    Réponses: 4
    Dernier message: 29/08/2003, 09h27

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