web-dev-qa-db-fra.com

Comment accéder à la page parent iFrame à l'aide de jQuery?

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?

261
Amr Elgarhy

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.

482
Pim Jager

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 $.

38
bobince

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.

12
Álvaro González

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");
_
9
Amr

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>
7
stieven

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!!!

5
Hitesh Patel

oui ça marche aussi pour moi.

Note: nous devons utiliser window.parent.document

    $("button", window.parent.document).click(function()
    {
        alert("Functionality defined by def");
    });
5
Yogesh Gandhi

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.

3
cj5

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")
1
Bharat