Page 1 sur 1

Appeler une function Javascript depuis la frame parente ?

Publié : 24 oct. 2006, 17:16
par ClaudeVernier
Bonjour,

J'ai un bout de javascript qui fonctionne sous IE mais pas avec FireFox. Je veux accéder à une fonction javascript qui est définie dans une page web d'un iFrame.

Sous IE, je fais:
var oTab = document.getElementById("iFrame");
var sXML = oTab.Scripts.BuildXML();

Je voudrais faire du javascript le plus conforme possible et donc, je me demande si ce que je veux faire est possible.

Soit, la page Host.htm contient trois boutons
[Total]
[Selection Etendue]
[Selection Avancée]
et un iFrame.

Si l'utilisateur clique sur [Selection Etendue], je charge une page [Range.htm].
Si l'utilisateur clique sur [Selection Avancée], je charge une page [Tree.htm].

Le bouton [Total] doit appeler une fonction javascript [BuildXML()] qui se trouve dans le iFrame.

Chaque page, [Range.htm] et [Tree.htm],
contient sa propre méthode [BuildXML()] car
la méthode de calcul dépend du type d'affichage.

J'ai donc une page qui doit exécuter du code qui se trouve dans une iFrame contenu dans la première.


Merci de toute aide !
Claude

Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)

Publié : 15 nov. 2006, 15:47
par dymezac
bonjour,

j'ai le même problème et suis toujours à la recherche d'une solution..
je voudrais faire appel à une fonction qui se trouve dans une iframe.
J'y arrive avec ie mais pas avec firefox.

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.8) Gecko/20061025 Firefox/1.5.0.8

Publié : 15 nov. 2006, 16:05
par dymezac
finalement c'est bon j'y arrive grâce à :
http://www.developpez.net/forums/archiv ... 94856.html


je fais document.getElementById('monIframe').contentWindow.maFonction() et ça marche sous ie et firefox .. cool ;)


il me manquait le contentWindow

a+

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.8) Gecko/20061025 Firefox/1.5.0.8

Publié : 15 nov. 2006, 16:13
par martin
pour récupérer l'objet window contenu dans l'iframe, lequel contient donc les objets javascript internes :

Code : Tout sélectionner

var iframeWindow = document.getElementById('myIframe').contentWindow;
ensuite vous pouvez tester l'existence d'une fonction par exemple, et vous en servir:

Code : Tout sélectionner

if (iframeWindow.myFunction) {
    iframeWindow.myFunction();
}
Servez-vous de l'inspecteur DOM, vous trouverez plein de choses...

Publié : 15 nov. 2006, 16:14
par martin
trop tard...

Publié : 15 nov. 2006, 17:18
par dymezac
bonjour Martin, et merci pour votre réponse..

savez vous ou je peux trouver l'inspecteur DOM ?

je recherche souvent les méthodes DOM et j'ai bien un ou deux sites en favoris mais je n'avais pas entendu parler de l'inspecteur DOM.. l'inspecteur Derick oui mais pas DOM.. ;)

d'avance merci beaucoup,
et déjà merci pour votre réponse précédente même si j'ai pu m'en sortir

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.8) Gecko/20061025 Firefox/1.5.0.8

Publié : 15 nov. 2006, 19:04
par Benoit
Si on a choisi l'installation complète peut trouver l'inspecteur DOM dans le menu Outils de Firefox. Sinon, le plus simple est de relancer le programme d'installation et de choisir l'installation personnalisée.

Publié : 15 nov. 2006, 21:05
par dymezac
D'accord merci beaucoup je vais voir çcela

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1) Gecko/20061010 Firefox/2.0

Publié : 15 nov. 2006, 21:07
par martin

Publié : 27 nov. 2006, 11:28
par Invité
est-ce que cela marche avec une FRAME tout court?

Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)

Publié : 27 nov. 2006, 11:43
par TCY
Je souhaite exécuter une fonction javascript "function test()" qui se situe dans une page PHP "php_1.php" depuis une autre page PHP "php_2.php".

J'ai essayé plusieurs solutions ("window.opener.document", "document.getElementById('mon frame').contentWindow...") mais aucune n'a abouti... :?

Auriez-vous une solution à me proposer.

Merci de votre aide.

Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)

Publié : 27 nov. 2006, 19:20
par Benoit
Mettre ta fonction dans un fichier js séparé, non ?