Salut tt le monde.
apres m'etre pas mal galéré à trouver une solution pour appeler une fonction du frame parent depuis un iframe (enfant donc...) voila la solution:
le frame parent on l'appel par.html et l'iframe ca va etre enf.html
alors par.html ressemble à ça:
Code :
- <html>
- <body onLoad="init();">
- <iframe src="enf.html" name="enfant"></iframe>
- </body>
- <script>
- function init(){
- document.enfant.val = fonctionaappeler;
- }
- function fonctionaappeler(test){
- alert(test);
- }
- </script>
- </html>
|
alors pour expliquer vite fait:
- val est une variable contenue dans enf.html, a ki on va donner un espece de pointeur sur la fonction fonctionaappeler (je sais y'a pas de pointeur en javascript mais je sais pas comment appeler ca...)
- la fonction init() est obligatoirement dans par.html. elle ne peut pas etre dans un .js
- fonctionaappeler peut etre dans un .js
maintenant le code de enf.html:
Code :
- <html>
- <body>
- <input type="button" onClick="clicked()" value="Click Me!!!">
- </body>
- <script>
- /* declaration de val*/
- val = null;
- /*declaration de clicked*/
- function clicked(){
- if(val != null)
- val("OUAI" );
- }
- </script>
- </html>
|
voila donc la on declare val et on l'initialise a null.
a l'initialisation de par.html, on attribut le "pointeur" vers fonctionaappeler. ensuite pour appeler cette derniere a partir de enf.html, il suffit de faire 'val()'.
le test est juste pour le cas ou enf.html est pas charger a partir par.html
voila j'espere que ca peut vous aider. si vous avez des solutions plus rapides je suis preneur.
allez bon courage a tous