Appeler une function Javascript depuis la frame parente ?

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Répondre
ClaudeVernier
Arias
Messages : 2
Inscription : 24 oct. 2006, 16:59

Appeler une function Javascript depuis la frame parente ?

Message 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)
dymezac
Arias
Messages : 6
Inscription : 28 juil. 2006, 13:17

Message 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
dymezac
Arias
Messages : 6
Inscription : 28 juil. 2006, 13:17

Message 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
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Message 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...
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Message par martin »

trop tard...
dymezac
Arias
Messages : 6
Inscription : 28 juil. 2006, 13:17

Message 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
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message 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.
♫ Li tens s'en veit, je n'ai riens fais ;
Li tens revient, je ne fais riens. ♪
dymezac
Arias
Messages : 6
Inscription : 28 juil. 2006, 13:17

Message 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
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Message par martin »

Invité

Message 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)
TCY

Message 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)
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

Mettre ta fonction dans un fichier js séparé, non ?
♫ Li tens s'en veit, je n'ai riens fais ;
Li tens revient, je ne fais riens. ♪
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 4 invités