Communication Parent / Enfant [Résolu]

Blacknight91titi 1754 Messages postés jeudi 17 juin 2004Date d'inscription 9 mars 2015 Dernière intervention - 17 sept. 2007 à 10:03 - Dernière réponse : Blacknight91titi 1754 Messages postés jeudi 17 juin 2004Date d'inscription 9 mars 2015 Dernière intervention
- 17 sept. 2007 à 12:41
Bonjour,

Après quelques recherche sur javascriptfr et sur google je n'ai malheuresement pas réussit à trouver mon bonheur.
Je suis actuellement sur un projet en dévellopement dont je ne peux malheuresement pas cité le but final.

Bref voici mon problème.
On trouve souvent sur le net des script permettant de communiquer d'une iframe vers la page parent mais rarement une communication partant de la page parent vers l'iframe. Surement me suis dis parce que si ce besoin exite il suffirait de modifier la page chargé dans l'iframe pour voir apparaitre les modifications.

Etant disons initié au javascript il parait étonnant pour moi ne n'avoir jamais essayé de faire cette action.

J'ai essayer divers moyen comme
Iframe = document.getElementById('iframe');
window.Iframe.getElementById('monobjetdansmoniframe').style.border = 'solid'; // ceci est un exemple

Mais apparement sans réel résultat.
Peut être la solution se trouve tout près. Enfin ce code me paraissait à priori juste.

Merci d'avance pour votre/vos réponse(s)

Blacknight
http://www.flash-nouvelle.com/

Ps : Je ne sais jamais quel Thème choisir pour les topics javascript...
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Blacknight91titi 1754 Messages postés jeudi 17 juin 2004Date d'inscription 9 mars 2015 Dernière intervention - 17 sept. 2007 à 11:34
3
Merci
Bon après quelques test, essai et autre j'ai trouvé la solution :

alert(window.parent.frames['blog_apercu'].document.getElementById(objet).innerHTML);

Le "window" est accessoire.
Test d'abord réalisé sous Firefox puis IE, correct sur les deux

Firefox 1.5
Internet Explorer 6

Note : Pour que cela marche il faut bien définir un name sur la frame.
Le name étant pour Firefox (IE prend l'un ou l'autre tout seul)

Pour les div j'ai mis un id, pour plus de facilité mon nom de div étant dynamique.
Firefox n'a pas l'air de suporté getElementByName donc je ne met pas de name sur mes div.

Voila voila, en tout cas merci de m'avoir aiguiller Bultez, pour une fois j'ai trouver presque tout seul :p

Blacknight
http://www.flash-nouvelle.com/

Merci Blacknight91titi 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 78 internautes ce mois-ci

Commenter la réponse de Blacknight91titi
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 17 sept. 2007 à 10:34
0
Merci
bonjour,

c'est comme entre iframe...

page principale :

test iframe

l'iframe :
<html>
   
        <form name="frm">
           
        </form>
   
</html>

<hr />



Cordialement                Bul        
Commenter la réponse de cs_bultez
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 17 sept. 2007 à 10:37
0
Merci
mais enfin... il y a peut-être plus simple..
<hr />



Cordialement            Bul        
Commenter la réponse de cs_bultez
Blacknight91titi 1754 Messages postés jeudi 17 juin 2004Date d'inscription 9 mars 2015 Dernière intervention - 17 sept. 2007 à 10:51
0
Merci
Merci pour ta réponse Bultez (comme à chaque question que je pose c'est toi qui répond).

Après quelques essais sa marche, mais disons que c'est un peu moin pratique car le getElementById et getElementByName n'est pas suporté si je m'en sert pour appelé les éléments se trouvant dans l'iframe.

Pire encore je n'ai pas l'impression que sa marche sous Firefox... (1. et quelques)
Pour IE je suis sous IE6

Avec un utilitaire Firefox il me donne : parent.frames.ifr has no properties //à noter le .ifr alors que dans le code c'est frames['ifr']
Une fois cliqué sur le bouton (test réalisé dans un premier temps avec un copier/coller de ton code)

Donc si Firefox l'aurai suporté, j'aurai pu m'arranger (avec des méthodes pas terrible) pour que le tout marche mais la...
Cela me parait bizarre..

Blacknight
http://www.flash-nouvelle.com/
Commenter la réponse de Blacknight91titi
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 17 sept. 2007 à 11:29
0
Merci
>>c'est un peu moin pratique car le getElementById et getElementByName n'est pas suporté
    _ jamais utilisé getElementByName ( sauf pour tester )
    _ je préfère utiliser, quand c'est possible, document.name_formulaire.name_champ
       puisque si transmission vers le php, le name est obligatoire.
    mais chacun ses goûts.


>>je n'ai pas l'impression que sa marche sous Firefox
    à priori, tu as raison. je n'avais du tester qu'avec IE ?
        reste à trouver la syntaxe équivalente pour FF et consors...
        ça doit être possible !     ;o)





<hr />




Cordialement                Bul        
Commenter la réponse de cs_bultez
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 17 sept. 2007 à 12:08
0
Merci
nickel.

>>IE prend l'un ou l'autre tout seul
    ie remplace le name par l'id ( ou inversement ) si l'un ( ou l'autre ) n'existe pas
    bien pratique ?  mais ça pose d'autres soucis dans certaines circonstances !

>>name pour iframe,
    window.parent.document.getElementById('ifr')....
    ça devrait le faire aussi ( si l'iframe possède un id )



  
<hr />
Cordialement                Bul        
Commenter la réponse de cs_bultez
Blacknight91titi 1754 Messages postés jeudi 17 juin 2004Date d'inscription 9 mars 2015 Dernière intervention - 17 sept. 2007 à 12:41
0
Merci
Non apparement pour utiliser l'id de frame uniquement cela ne marche pas, ou alors ce n'est pas la bonne méthode

J'ai essayé différente façon :
window.parent.document.getElementById('ifr')....
window.parent.getElementById('ifr')...

Bref si sa marche avec la méthode de mon précédent message et que la contraire est juste d'ajouter un name sur l'iframe c'est acceptable.

Comme tu dis sa peut poser problème. Personellement il m'est arriver de stocker de variable dans name pour chaque div, ne sachant pas ou les mettres autrement. Bien entendu maintenant je me sert d'autre méthode.

Blacknight
http://www.flash-nouvelle.com/
Commenter la réponse de Blacknight91titi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.