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 :

Appel de fonction entre 2 window


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 26
    Par défaut Appel de fonction entre 2 window
    J'ai une première page, qui a un input text, et quand l'utilisateur appuie sur "enter", la ligne est envoyé au serveur et un div plus haut est mis à jour avec la réponse du serveur. L'idée c'est que j'ai ajouté un bouton qui m'ouvre une petite page internet avec un textarea, ainsi, l'utilisateur aura une façon plus élégante pour écrire.

    Lorsque il a rempli son textarea, il appuie un bouton qui va remplir le input texte et il ne lui reste qu'à appuyer sur "enter" pour envoyer la requête. J'aimerais savoir si je peux appeler la fanction submitCmd() depuis la fenêtre fils! J'ai essayé mais évidemment l'objet qui doit recevoir la réponse du serveur
    "has no properties" car c'est le fils qui fait l'appel, mais le parent. Y'a t'il une façon de faire ?

    Code parent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <body onLoad="startConsole()">
    
    ....
    <div id="log"></div>
    ....
    
    <table width="100%" cellpadding="0" cellspacing="0" border="0">
      <tr>
        <td class="prompt">&gt;</td> 
        <form name="test" onSubmit="submitCmd(); return false;">
    	<td width="100%"><input type="text" class="cmd" name="q" id="q"></td>
        </form>
      </tr>
    </table>
    javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function startConsole() {
      ......   
      logobj = document.getElementById('log'); 
    }
     
    function submitCmd() {
       .....
       logobj.insertAdjacentHTML = reponse_du_serveur //Ca coince ici
    }
    Le fils :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function copy_back() {
      opener.document.getElementById('q').value += q2.value // le texte est écrit dans le champ q sur le parent
      submitCmd() //une fois que le champ q du parent est rempli, j'aimerais lancer la requête... comme si la rêquete avait été lancé depuis le parent
    }
     
    <body onLoad="startMultiLineConsole()">
    ...
    <div align="center">
    	<textarea id="q2" cols="80" rows="20"></textarea>
    	<button onClick="copy_back()">Send Code</button>
    </div>
    Sur le même javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function startMultiLineConsole() {
    	qobj = document.getElementById('q2'); 
    }
    Merci de votre aide!

  2. #2
    LEK
    LEK est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function copy_back() {
      opener.document.getElementById('q').value += q2.value // le texte est écrit dans le champ q sur le parent
     opener.submitCmd() //une fois que le champ q du parent est rempli, j'aimerais lancer la requête... comme si la rêquete avait été lancé depuis le parent
    }
    comme çà, non?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 26
    Par défaut
    Quel c... j'ai presque tout essayé, mais avec opener.document.xxx Nice, merci.

    Mais à la suite de ça, cela fonctionne bien si je ne rentre qu'une seule ligne pour Firefox et pour IE7. Si je rentre plusieurs lignes, ca marche tiptop avec IE7, mais pas Firefox. Le string qu'il a n'est pas du tout celui qui est écrit dans la fenêtre enfant...

    Firefox me dit :
    Élément référencé par son ID/NAME dans le contexte global. Utilisez la propriété standard du W3C « document.getElementById() » à la place.
    à la ligne 10... qui a :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    opener.document.getElementById('q').value += q2.value
    Pour vérifier, j'ai imprimer la valeur de q2... et c'est correct. Donc c'est le passage entre l'enfant et le parent qui embête...

    EDIT : l'erreur affiché par Firefox a été corrigé : c'est le q2.value qu'il n'aimait pas. Le problème reste par contre pour une entrée sur plusieurs lignes dans FF : bien que l'enfant me marque le même string a envoyé au parent, le serveur qui recoit la requete du parent ne recoit que la 1ère ligne...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 26
    Par défaut
    Bon ben j'ai trouvé... c'est un "bug" qui existe avec javascript sur firefox et non javascript sur IE7. Je vais pas entrer dans les détails du pkoi, mais j'ai remplacé chaque retour à la ligne par un espace et le problème est réglé!

    Merci !

  5. #5
    LEK
    LEK est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Par défaut
    Bah de rien

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

Discussions similaires

  1. Appeler une fonction d'un windows form à un autre
    Par esisarpi03 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 01/04/2019, 10h22
  2. Appel de fonction entre deux objects séparés
    Par actiproj dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/03/2014, 18h21
  3. Appel de fonction entre fonction sur architecture complexe
    Par mek-in-gold dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/03/2008, 19h07
  4. Réponses: 7
    Dernier message: 16/03/2007, 14h53
  5. Appel de Fonction entre classes
    Par likenoother dans le forum C++
    Réponses: 5
    Dernier message: 09/08/2006, 14h37

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