J'ai une page avec un iframe. À l'intérieur de cet iframe, j'ai une fonction javascript comme ceci: Comment puis-je appeler cette fonction sur la page principale? P> p>
7 Réponses :
Si l'IFrame est dans un domaine différent de la page extérieure, avec une grande difficulté, ou pas du tout. P>
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. P>
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. P>
Vous pouvez accéder à l'iframe avec son nom: 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" ...>
Je le débogère en Firebug et il dit: M.Contentwindow.PutMap n'est pas une fonction
Donnez un nom à l'image et un identifiant - identique. fenêtre.framenameorid_.fonctionName () p>
Les deux cadres doivent être dans le même domaine (bien qu'il y ait des moyens de créer un degré limité) p>
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é: P>
fenêtre. [Framename] .putme (); P>
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.
Pour encore plus robustesse: et p>
Ceci peut être fait avec JavaScript:
window.top.location.href = url;