11
votes

Appeler une fonction dans un iframe de l'extérieur de l'iframe

J'ai une page avec un iframe. À l'intérieur de cet iframe, j'ai une fonction javascript comme ceci: xxx

Comment puis-je appeler cette fonction sur la page principale?


0 commentaires

7 Réponses :


1
votes

Si l'IFrame est dans un domaine différent de la page extérieure, avec une grande difficulté, ou pas du tout.

En général, le navigateur empêche JavaScript d'accéder à un code à partir d'un autre domaine, mais si vous contrôlez les deux pages, il y a des hacks pour faire quelque chose de travail. Plus ou moins.

Par exemple, vous pouvez modifier le fragment de l'URL de l'iframe de l'extérieur, interrogez le fragment de l'intérieur de l'iframe et appelez cette fonction. Il y a un truc similaire avec le nom de la fenêtre.


0 commentaires

0
votes

Vous pouvez accéder à l'iframe avec son nom: xxx pré>

Les fonctions déclarées globalement à l'intérieur de la page IFRAME deviennent membres de l'objet Window pour cet iframe. Vous pouvez accéder à l'objet Window de l'Iframe avec le nom de l'iframe. P>

Pour que cela fonctionne, votre iframe doit avoir un attribut NAME: P>

<iframe name="foo" ...>


1 commentaires

Je le débogère en Firebug et il dit: M.Contentwindow.PutMap n'est pas une fonction



0
votes

Donnez un nom à l'image et un identifiant - identique. fenêtre.framenameorid_.fonctionName ()

Les deux cadres doivent être dans le même domaine (bien qu'il y ait des moyens de créer un degré limité)


0 commentaires

1
votes

sur le freinet, spécifiez un nom pour votre cadre et dans la page principale, vous pouvez accéder au cadre par son nom donné:

fenêtre. [Framename] .putme ();


0 commentaires

10
votes
window.frames['frameName'].putme();
Do note that this usually only works if the iframe is referring to a page on the same domain. Browsers restrict access to pages within frames that belong to a different domain for security reasons.

0 commentaires

3
votes

Pour encore plus robustesse: xxx

et xxx


0 commentaires

0
votes

Ceci peut être fait avec JavaScript:

window.top.location.href = url;


0 commentaires