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

  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 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ù...

  5. #5
    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() }

  6. #6
    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.

  7. #7
    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();
     
    }

  8. #8
    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?)

  9. #9
    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
    ben non...

    jouvre ma fenetre comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    function openCalendar(form, field, type) { window.showModalDialog("calendrier.php","Calendrier","dialogWidth:335px;dialogHeight:230px;center:1;scroll:0;help:0;status:0");
    dateField = eval("document." + form + "." + field);
    dateType = type;
    jusque là ok, mais lorsque je clic sur une date de mon calendrier ma fonction return date ne fonctionne pas et ouvre une nouvelle page ayant comme adresse "javascript:returnDate('2006-10-11')" alors que ma date doit s'inscrire dans mon champs destinataire (ça fonctionne très bien avec window.open...)

  10. #10
    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
    je vai pas montrer le code du calendrier,ça servirai pas à grand chose et c'est assez indigeste...

  11. #11
    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

    function openCalendar(form, field, type) { window.showModalDialog("calendrier.php",self,"dialogWidth:335px;dialogHeight:230px;center:1;scroll:0;help:0;status:0");
    dateField = eval("document." + form + "." + field);
    dateType = type;
    Faut lire les détails

  12. #12
    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 encore, mais désolé ca ne fonctionne toujour pas....ça n'a même rien changé...

  13. #13
    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
    c'est peu etre un problème avec mon champ destination?

  14. #14
    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
    c'est quand meme bizar,
    ma fenetre s'ouvre bien et je récupère bien la date pour alimenter ma fonction ReturnDate vu qu'elle s'affiche dans ma barre d'adresse!

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