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 :

[POO] Comment acceder a un objet javascript instancie dans une page mere


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 20
    Points : 10
    Points
    10
    Par défaut [POO] Comment acceder a un objet javascript instancie dans une page mere
    bonjour a tous,

    mon probleme est le suivant j instancie un objet dans une page web comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <script type="text/javascript">
     
    var oBlock = new Block( 'B1' ) ;
    oBlock.BasePath	= "../rep1/" ;
    oBlock.Value	= 'valeur de test' ;
    oBlock.Create() ;
     
    </script>
    Cet objet est instancie dans une page page1.html.

    Ensuite page1.html ouvre une page fille page2.html grace a la methode window.open();

    Je voudrais savoir s il est possible d'obtenir une reference sur l objet oBlock dans la page fille page2.html notamment au moyen de window.opener.xxx ? ou autre ?

    Merci de votre aide

    Nico
    ...loves you.....

  2. #2
    Membre averti Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Points : 323
    Points
    323
    Par défaut
    Utilise plutôt : window.parent

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    et la suite ? window.parent. ???
    ...loves you.....

  4. #4
    Membre averti Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Points : 323
    Points
    323
    Par défaut
    ICI

  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 : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 289
    Points
    3 289
    Par défaut
    Plus simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.open("url","","").oBlock=oBlock;
    Pour acceder à oBlock dans la page fille :
    oBlock (pas sur) ou window.oBlock (sur)
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    c est sur un objet javascript que j ai besoin d une reference donc j avoue que je ne vois pas en quoi ton lien peut m aider , peut etre peux tu m eclairer...?
    ...loves you.....

  7. #7
    Membre averti Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Points : 323
    Points
    323
    Par défaut
    Pourtant le lien correspond bien à une source d'informations sur le DOM ...

  8. #8
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Merci Fremy

    J aimerais bien savoir:

    combien d annees de pratique du javascript tu as ou
    quels sont tes references bibliographiques

    Quoiqu il en soit merci pour votre aide a tous et pour la rapidite aussi...

    a tres vite sur ce forum
    ...loves you.....

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 289
    Points
    3 289
    Par défaut
    Combien d'années ??? lol, ca fait même pas un an que j'en fait !
    Et ma seule référence bibliographique, c'est google !
    Juste que je suis un p'tit jeunet de 14 ans (et presque 15) fana de programmation qui avance un peu à taton
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 289
    Points
    3 289
    Par défaut
    Citation Envoyé par herbert
    t aurais pas par hasard le meme genre d astuce pour faire exactement pareil mais en utilisant window.showModalDialog et non window.open ?

    Merci de ton aide jeunet
    Euh... Il me semble que cette fonction est reservée à IE... Mieux vaut utiliser une autre fonction... Essaie plutôt ceci :
    Dans ta page mère :
    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
    21
    22
    23
    function showDialog (url) {
      var PopUp=window.open(url,"_blank");
      PopUp.oBlock=oBlock;
      PopUp.canClose=false;
      PopUp.response=null;
      while (!PopUp.canClose) {
        try {
          PopUp.focus();
        } catch (ex) {
           try {
             PopUp.activate()
           } catch (ex) {}
        }
      }
      var r = PopUp.response;
      try {
        PopUp._Close();
      } catch (ex) {}
      try {
        PopUp.close();
      } catch (ex) {}
      return r;
    }
    Dans ta page popup:
    Tu dois prévoir un bouton qui ferme la fenêtre...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" value="Fermer" onclick="Close()" />
    et ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function Close() {
       this.canClose=true;
    }
    function _Close() {
       self.close();
    }
    Pour changer la réponse à renvoyer :
    Code jamais testé
    Si il y a un problème... n'hésite pas !
    __________________
    EDIT: ATTENTION (IMPORTANT) :
    Aussi mettre ce code dans la page "popup" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    document.onunload=function() {
       Close();
    }
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

  11. #11
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Merci Fremy je vais mettre tout ca en place !
    ...loves you.....

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 289
    Points
    3 289
    Par défaut
    Désolé mais je t'ai envoyé sur une fausse piste en voulant tout faire en mode synchrone (la fonction continue tant qu'elle n'a pas recu de réponse)...
    Mais comme je n'ai pas chaumé, voici ce que tu voulais faire mais en mode asynchrone cette fois ! Teste par toi-même (sur un serveur car en locale ca bloque sur ie)

    index.html :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    <html>
    <body>
    <input id="btt" value="Tester la fonction !" type="button" onclick="btt_onclick();" />
    <script>
    // url: URL de la page à appeler
    // paramas: Chaine de caracètre représentant les paramètres de la fenêtre du popup
    // callBack: Methode invokée lors du processus de réponse
    // Objects: objet contenant toutes les propriètès à copier sur "window" du popup
    function showDialog (url, params, callBack, Objects) {
        // Crée le popup
        var PopUp=window.open(url,"_blank", params);
     
        // Si le popup n'existe pas...
        if (!PopUp) {
            throw "Le popup n'a pas pu s'initialiser !";
        }
        // Ajoute des données au popup si besoin
        if (Objects) {
            for (key in Objects) {
                PopUp[key]=Objects[key]
            }
        }
        // Ajoute au popup des références à cette page
        PopUp.parentDocument=document;
        PopUp.parentWindow=window;
        // Mise en place de la procèdure de réponse
        PopUp.callBack=callBack;
        // Signifie que la fonction a réussi
        return true;
    }
     
    // Exemple d'utilisation du popup
    function btt_onclick() {
        // Fonction qui sera executée lorsqu'une réponse aura été donnée
        var callBack=function (response) {
            // Recupère le document de la page mère
            var Document=((window.parentDocument)?(window.parentDocument):(document))
            // Recupère la fenêtre  de la page mère
            var Window=((window.parentWindow)?(window.parentWindow):(window))
            // Mettez ici votre gestion de l'evenement
            if (response==true) {
                Document.write("Yes !!!!")
            }
        }
        // Crée une coquille vide pour transmettre des données
        var PopUp=new Object();
        // Ajoute des données
        PopUp.response=true;
        // Ouvre le popup
        showDialog ('popup.html',null,callBack,PopUp)
    }
    </script>
    </body>
    </html>
    popup.html :
    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
    <html>
    <body onunload="self.close();">
    <script>
    window._close=window.close;
    window.close=function() {
        try {
            window.callBack(window.response)
        } finally {
            window.close=window._close;
            window.close();
        }
    }
    setInterval("window.focus();", 10)
    </script>
    <input type="button" value="Fermer" onclick="window.close();" />
    </body>
    </html>
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/01/2013, 01h08
  2. Réponses: 0
    Dernier message: 02/11/2009, 06h32
  3. comment recuperer l'id de ma session dans une page jsf
    Par riadhhwajdii dans le forum JSF
    Réponses: 0
    Dernier message: 10/09/2009, 12h32
  4. Réponses: 2
    Dernier message: 21/12/2007, 11h16
  5. Réponses: 7
    Dernier message: 01/03/2007, 15h07

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