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 :

Communication entre plusieurs fenetres


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 187
    Par défaut Communication entre plusieurs fenetres
    Bonjour,
    J'ai dans une page 2 liens : le premier ouvre un nouvelle fenêtre, le deuxième mène vers 'page2.html'.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <head>
        <title>essai de multiple fenetre</title>
        <script type="text/javascript">
            function ouvrir_fenetre(){
                window.open("fille.html","_blank",...);
            }
        </script>
    </head>
    <body>
        <a href="fille.html" onclick="ouvrir_fenetre();return false;">ouvrir la popup</a><br />
        <a href="page2.html">Vers page 2</a>
    </body>
    1) j'ouvre la popup 'fille.html'
    2) je suis le liens 'page2.html'
    A partir de là, je voudrais pouvoir accéder avec javascript à fille.html.
    Est-ce possible ?

  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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      <title>essai de multiple fenetre</title>
        <script type="text/javascript">
    var mypop;
            function ouvrir_fenetre(){
               mypop= window.open("fille.html","_blank",...);
            }
        </script>
    depuis là mère
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(mypop.document.body.innerHTML)
    depuis la fille:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(self.opener.document.body.innerHTML)
    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 !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 187
    Par défaut
    Merci encore un fois pour ta réponse quasi instantanée
    Mais ça je savais faire.
    Je voudrais avoir accès à une référence sur la popup 'fille.html' lorsque je suis sur la page 'page2.html' donc après avoir navigué sur une autre page que la page mère.
    En fait la popup me servira à jouer des extraits musicaux, qui pourront être pilotés depuis n'importe quel page de mon site (pas seulement celle qui à ouvert la popup).

  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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    avec nom de fenetre = title du popup dans le window.open ...
    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 !

  5. #5
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    avec nom de fenetre = title du popup dans le window.open ...
    Mais entre temps "parent" est devenu page2.html ...

    A+

  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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    parent depuis n'importe quelle page ...
    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 !

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 187
    Par défaut
    tu dis
    title du popup dans le window.open
    Je n'ai pas trouvé d'argument title dans window.open() et je doute que soit le title de la page html ainsi ouverte.
    Quel est ce champ title ?

  8. #8
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.open('url',title','autres params')
    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 !

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 187
    Par défaut
    En fait, dans ma doc ce champ s'appel name mais j'avais qd même essayé (je suis pas si con ).
    Ca ne marche pas, voila ce que je fais.
    page2.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <head>
        <title>page 2</title>
        <script type="text/javascript">
            function envoyerMessage(arg){
                alert(parent.popup);
            }
        </script>
    </head>
    <body onload="envoyerMessage('coucou')">
    </body>
    </html>
    et dans page1.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.open("fille.html",'popup',...);
    L'alert me renvoie "undefined"

  10. #10
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    c'st sur que si tu utilises des noms comme "_blank" ou "name" ... ça va pas aider ...
    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 !

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 187
    Par défaut
    J'ai remplacé mon 'popup' par 'jukebox' ça ne change rien
    J'y arrive en envoyant depuis la popup toutes les secondes son nom mais c'est un peu lourd à mon sens :
    fille.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ...
    function initCom(){
        window.opener.initCom(window);
        setTimeout("initCom()",1000);
    }
    ...
    <body onload="initCom();">
    Comme cela je reçoit bien sur page2.html après le changement de page la référence de la popup mais ce n'est pas satisfaisant. Ce qui faudrait c'est une liste de toutes les window ouvertes dans un navigateur.

  12. #12
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    [mode publicité]
    voir le sujet :
    http://www.developpez.net/forums/sho...d.php?t=271424

    Tu as un code pour:
    Q : Comment transmettre des données d'une fenêtre parent vers une fenêtre enfant et réciproquement ?
    puis plus bas :
    Q : Comment naviguer dans une pop-up et transmettre les informations à la fenêtre mère ? (Il s'agit de naviguer dans une pop-up sans perdre l'opener)
    [/mode publicité]

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 187
    Par défaut
    Merci Auteur,
    que faire quand, entre temps, l'utilisateur à navigué vers une autre page du site ? Le paramètre fenFille issu du window.open() n'existe plus.

  14. #14
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Citation Envoyé par tom42 Voir le message
    Merci Auteur,
    que faire quand, entre temps, l'utilisateur à navigué vers une autre page du site ? Le paramètre fenFille issu du window.open() n'existe plus.
    à partir du moment où tu changes de site, tu changes de domaine : tu ne peux donc plus transmettre des informations d'une fenêtre à l'autre pour des raisons de sécurité.

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 187
    Par défaut
    Je parle de naviguer entre les pages d'un même site.
    En fait la popup me servira à jouer des extraits musicaux, qui pourront être pilotés depuis n'importe quel page de mon site (pas seulement celle qui à ouvert la popup).

  16. #16
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    ah oui pardon, je n'avasi pas compris

    Je vois ton problème... et pour l'instant je n'ai pas de réponse à te donner
    Avec des cookies peut-être ?

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 187
    Par défaut
    Je vais procéder comme ceci :
    La popup envoi régulièrement à la fenêtre mère sa référence.
    popup :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ...
    function receive(
        document.getElementById('message').innerHTML = arg;
    }
    function initCom(){
        window.opener.initCom(window);
        setTimeout("initCom()",1000);
    }
    ...
    <body onload="initCom();">
    Les fenêtres mères page1 et page2 :
    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
    18
    19
    20
     
    var fille = null;
    function ouvrir_fenetre(){
        if(fille == null || !fille.document){
            window.open("fille.html",...);
        } else {
            alert('popup dejà ouverte');
        }
    }
    function initCom(arg){
        fille = arg;
    }
    function transfert(){
        if(fille != null && fille.document){
            var texte = document.getElementById('message').value;
            fille.receive(texte);
        } else {
            alert("La popup n'est pas ouverte");
        }
    }
    Je met résolu mais cela n'est pas satisfaisant.
    Si quelqu'un trouve une meilleure solution (sans setTimeout()) je serais preneur.
    En tout cas merci à SpaceFrog et à Auteur pour votre aide.

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

Discussions similaires

  1. Communication entre deux fenetres
    Par Jere76 dans le forum VB.NET
    Réponses: 11
    Dernier message: 19/03/2007, 13h43
  2. Communication entre deux fenetres qui n'ont pas de lien de parenté
    Par Invité dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/09/2006, 15h58
  3. Communication entre plusieurs applications.
    Par granquet dans le forum Linux
    Réponses: 9
    Dernier message: 01/06/2006, 14h42
  4. Réponses: 3
    Dernier message: 16/05/2006, 10h32
  5. Réponses: 9
    Dernier message: 15/04/2006, 03h55

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