Communication Parent / Enfant

Résolu
Blacknight91titi Messages postés 1732 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 9 mars 2015 - 17 sept. 2007 à 10:03
Blacknight91titi Messages postés 1732 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 9 mars 2015 - 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...
A voir également:

7 réponses

Blacknight91titi Messages postés 1732 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 9 mars 2015 2
17 sept. 2007 à 11:34
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/
3
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
17 sept. 2007 à 10:34
bonjour,

c'est comme entre iframe...

page principale :

test iframe

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

<hr />



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



Cordialement            Bul        
0
Blacknight91titi Messages postés 1732 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 9 mars 2015 2
17 sept. 2007 à 10:51
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/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
17 sept. 2007 à 11:29
>>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        
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
17 sept. 2007 à 12:08
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        
0
Blacknight91titi Messages postés 1732 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 9 mars 2015 2
17 sept. 2007 à 12:41
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/
0
Rejoignez-nous