J'ai un iframe et pour accéder à l'élément parent, j'ai implémenté le code suivant:
window.parent.document.getElementById('parentPrice').innerHTML
Comment obtenir le même résultat en utilisant jQuery?
UPDATE: Ou comment accéder à la page parent d'iFrame à l'aide de jquery?
Pour trouver dans le parent de l'iFrame, utilisez:
$('#parentPrice', window.parent.document).html();
Le deuxième paramètre du wrapper $ () est le contexte dans lequel effectuer la recherche. Cette valeur par défaut est de documenter.
comment accéder à la page parent iFrame à l'aide de jquery
window.parent.document.
jQuery est une bibliothèque au dessus de JavaScript, pas un remplacement complet pour elle. Il n'est pas nécessaire de remplacer chaque dernière expression JavaScript par quelque chose impliquant $.
Si vous devez rechercher l’instance jQuery dans le document parent (par exemple, pour appeler une fonction d’utilitaire fournie par un plug-in), utilisez l’une des syntaxes suivantes:
window.parent.$
window.parent.jQuery
Exemple:
window.parent.$.modal.close();
jQuery est attaché à l'objet window
et c'est ce que window.parent
est.
Vous pouvez accéder aux éléments de la fenêtre parente depuis une iframe en utilisant window.parent
comme ceci:
_// using jquery
window.parent.$("#element_id");
_
Quel est le même que:
_// pure javascript
window.parent.document.getElementById("element_id");
_
Et si vous avez plusieurs iframes imbriqués et que vous souhaitez accéder à la plus haute iframe, vous pouvez utiliser window.top
comme ceci:
_// using jquery
window.top.$("#element_id");
_
Quel est le même que:
_// pure javascript
window.top.document.getElementById("element_id");
_
dans la fenêtre parente, mettez:
<script>
function ifDoneChildFrame(val)
{
$('#parentPrice').html(val);
}
</script>
et dans le fichier src iframe, mettez:
<script>window.parent.ifDoneChildFrame('Your value here');</script>
Cela fonctionne pour moi avec peu de torsion. Dans mon cas, je dois renseigner la valeur de POPUP JS à la forme PARENT WINDOW.
J'ai donc utilisé $('#ee_id',window.opener.document).val(eeID);
Excellent!!!
oui ça marche aussi pour moi.
Note: nous devons utiliser window.parent.document
$("button", window.parent.document).click(function()
{
alert("Functionality defined by def");
});
Cela pourrait être un peu tard pour le jeu ici, mais je viens de découvrir ce fantastique plugin jQuery https://github.com/mkdynamic/jquery-popupwindow . Fondamentalement, il utilise un événement de rappel onUnload. Il écoute donc la fermeture de la fenêtre enfant et effectue les opérations nécessaires à ce stade. SO il n'est vraiment pas nécessaire d'écrire un JS dans la fenêtre enfant pour le renvoyer au parent.
Il y a plusieurs façons de faire cela.
I) Obtenez le parent principal directement.
pour exa. je veux remplacer ma page enfant à iframe alors
var link = '<%=Page.ResolveUrl("~/Home/SubscribeReport")%>';
top.location.replace(link);
ici top.location obtient le parent directement.
II) obtenir les parents un à un,
var element = $('.iframe:visible', window.parent.document);
ici si vous avez plus d’un iframe, spécifiez un actif ou un visible.
vous pouvez aussi faire comme ceux-ci pour avoir d'autres parents,
var masterParent = element.parent().parent().parent()
III) obtenir parent par identifiant.
var myWindow = window.top.$("#Identifier")