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 :

exécuter dans une frame une fonction js


Sujet :

JavaScript

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 829
    Points
    5 829
    Billets dans le blog
    1
    Par défaut exécuter dans une frame une fonction js
    Bonjour,

    voilà ce que j'imagine : j'ai 2 frames ; la première comporte une liste déroulante et selon le choix de l'utilisateur, on lance dans la deuxième frame la fonction js qui va bien : le problème, c'est que la liste déroulante va comporter des liens et que ceux-ci attendent un fichier ; or, je voudrais lancer juste une fonction js qui appartiendrait au même fichier : comment faire ?

  2. #2
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 829
    Points
    5 829
    Billets dans le blog
    1
    Par défaut
    Petit rectificatif : il ne s'agit pas d'une liste déroulante, mais d'un code js qui fait dérouler tout un texte. Le code est ; un exemple est .
    J'avais aussi pensé à une solution à base d'un select ; or une contrainte forte est que tout le code soit dans le même fichier (c'est imposé par l'environnement dans lequel je me trouve), et comme l'action du select est dans un autre fichier...

  3. #3
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    il y a dans les contributions un post qui decrit comment acceder aux élements entre fenetre mère et filles ...

  4. #4
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 829
    Points
    5 829
    Billets dans le blog
    1
    Par défaut
    *dis-moi si le c'est à ce post-là que tu fais référence : j'aimerais avoir ta confirmation avant de passer du temps à chercher à le comprendre.

  5. #5
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    c'est bien celui là

  6. #6
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 829
    Points
    5 829
    Billets dans le blog
    1
    Par défaut
    Je souhaite m'inspirer du code basé sur une iframe, mais je n'arrive pas à supprimer le bouton de la page mère ; le code d'origine est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ... <input type="button" value=">>Frame fille" onclick="transfertVersFille()">
     
    <br><br>
     
    Valeur transmise :
     
    <div id="idDivParent"></div>
     
     <iframe id="maFrame" name="maFrame" src="frameFille.htm" style="height: 150px; width: 300px">
     
    </iframe>...
    et j'ai voulu le remplacer par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ... <script>
    transfertVersFille();
    </script>
     
    <br><br>
     
    Valeur transmise :
     
    <div id="idDivParent"></div>
      <iframe id="maFrame" name="maFrame" frameborder=0 src="frameFille.htm" style="height: 150px; width: 300px">
     
    </iframe>...
    pour supprimer l'appui sur un bouton et rendre le transfert mère/fille immédiat (ce n'est pas le but, mais juste un test ; je voudrais remplacer l'appui sur le bouton par autre chose) mais ce que j'ai fait ne marche pas ; et pour être sûr du test, voilà ce que j'ai mis côté fille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function affiche()
     
    {
     document.getElementById("idDiv").innerHTML = 
     '<iframe src="http://www.google.com"></iframe>';
     
    }
    Or si je laisse le bouton, j'ai bien Google dans l'iframe fille mais pas dans mon cas ; sachant qu'on a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function transfertVersFille()
    {
     
     /* var info = prompt("Valeur à transmettre ?");
      window.frames["maFrame"].data = info;*/
     
      window.frames["maFrame"].affiche(); 
    }
    Comment cela se fait-il ?

  7. #7
    Membre confirmé Avatar de nadox
    Homme Profil pro
    Développeur
    Inscrit en
    Février 2010
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 360
    Points : 551
    Points
    551
    Par défaut
    Bonsoir,

    La différence tient du fait que lorsque tu clique sur le bouton la frame existe déjà dans la page. Lorsque tu fait l'appel direct à la fonction transfertVersFille, la frame n'existe pas nécessairement dans le document...

    Si tu déplace le bout de script qui fait l'appel en dessous de ton élément, tu auras plus de chance d'avoir le résultat attendu.

    Mais comme tu semble avoir prévu de déclencher le mécanisme sur un événement, tu n'auras pas de problème.

  8. #8
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 829
    Points
    5 829
    Billets dans le blog
    1
    Par défaut
    Merci pour ta réponse ; du coup, j'ai fait marché mon truc en appliquant un setTimeout à la fonction affiche().
    Mais en fait, l'idéal serait de supprimer la frame et de mettre à la place un div, car je voudrais que tout le code soit dans un seul fichier (contrainte de mon environnement). Du coup, j'ai fait ça :
    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
    <head>...
    <script type="text/javascript">
    function affiche()
    {
    document.getElementById("idDiv").innerHTML = '<iframe src="http://www.google.com"></iframe>';
    }
    </script>
    ...
    </head>
    <body>
    ...
    <div id="idDivParent">      
    <script>affiche();</script>
    </div>
    <div id="idDiv">      </div>
    ...
    </body>
    Mais cela ne marche pas ; cela pourrait-il marcher et si oui, comment ?

  9. #9
    Membre confirmé Avatar de nadox
    Homme Profil pro
    Développeur
    Inscrit en
    Février 2010
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 360
    Points : 551
    Points
    551
    Par défaut
    Bonjour,

    Le problème reste le même.
    Lors de l'affichage de la page par le navigateur, l'appel de la fonction affiche(); est effectué avant la création de la div.
    Il faut donc mettre le script en dessous de la div pour avoir plus de chance que la div existe dans le DOM de la page au moment de l'appel.
    Ou bien faire l'appel sur un événement de la page(après son chargement), comme le onclick du bouton.

    Par quoi veux-tu remplacer le click sur le bouton, au juste ?

  10. #10
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 829
    Points
    5 829
    Billets dans le blog
    1
    Par défaut
    Merci encore ; et j'ai de nouveau résolu le problème par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
          <script>
    setTimeout(affiche,1000);
          </script>
    A la place du bouton click, je souhaite justement donner la possibilité de sélectionner un fichier (flv) (et le temps que l'utilisateur sélectionne le fichier, il n'y aura pas besoin de tempo), sachant que dans le div, je compte mettre un lecteur (flowpower) de ce fichier, afin d'afficher la video sélectionnée par l'utilisateur. (Et j'ai déjà le code pour lire un fichier unique).
    Bon, je crois que je peux cocher "résolu".

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

Discussions similaires

  1. Newbie: Changer le contenu d'une frame en fonction de la selection
    Par SubwAy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 0
    Dernier message: 12/06/2010, 11h22
  2. [RegExp] Détecter des combinaisons dans une chaine une par une
    Par vermine dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 08/06/2010, 13h22
  3. Aide pour une ramener une info en fonction d'une date maximum
    Par dessinateurttuyen dans le forum SQL
    Réponses: 7
    Dernier message: 31/10/2008, 16h52
  4. Envoi de variable d'une Frame à une autre
    Par CYCLOPE91440 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 02/02/2007, 19h37
  5. Aller à une frame en fonction d'un compteur temps
    Par Krysteo dans le forum Flash
    Réponses: 2
    Dernier message: 22/07/2006, 03h06

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