Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/03/2011, 17h18   #1
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
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 ?
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2011, 12h28   #2
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
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...
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2011, 12h52   #3
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
il y a dans les contributions un post qui decrit comment acceder aux élements entre fenetre mère et filles ...
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2011, 15h44   #4
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
*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.
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2011, 16h02   #5
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
c'est bien celui là
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2011, 21h44   #6
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
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 :
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 :
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 :
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 :
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 ?
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2011, 23h04   #7
Membre expérimenté
 
Avatar de nadox
 
Homme
Développeur
Inscription : 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 : 545
Points : 545
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.
nadox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2011, 14h32   #8
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
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 :
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 ?
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2011, 14h59   #9
Membre expérimenté
 
Avatar de nadox
 
Homme
Développeur
Inscription : 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 : 545
Points : 545
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 ?
nadox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2011, 15h19   #10
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Merci encore ; et j'ai de nouveau résolu le problème par
Code :
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".
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h33.


 
 
 
 
Partenaires

Hébergement Web