jak uzyskać dostęp do strony nadrzędnej iFrame przy użyciu jquery?

Mam iframe i w celu uzyskania dostępu do elementu nadrzędnego zaimplementowałem następujący kod:

window.parent.document.getElementById('parentPrice').innerHTML

Jak uzyskać ten sam wynik za pomocą jquery?
UPDATE: lub jak uzyskać dostęp do strony nadrzędnej iFrame przy użyciu jquery?

Author: limonik, 2009-04-07

9 answers

Aby znaleźć w rodzicu użycia iFrame:

$('#parentPrice', window.parent.document).html();

Drugim parametrem wrappera $() jest kontekst, w którym ma być wyszukiwane. Domyślnie jest to document.

 452
Author: Pim Jager,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-07 17:47:26

Jak uzyskać dostęp do strony nadrzędnej iFrame przy użyciu jquery

Okno.rodzic.dokument.

JQuery jest biblioteką opartą na JavaScript, nie jest jej kompletnym zamiennikiem. Nie musisz zastępować każdego ostatniego wyrażenia JavaScript czymś zawierającym $.

 36
Author: bobince,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-07 18:09:41

Jeśli chcesz znaleźć instancję jQuery w dokumencie nadrzędnym (np. aby wywołać funkcję użytkową dostarczoną przez wtyczkę), użyj jednej z następujących składni:

  • window.parent.$
  • window.parent.jQuery

Przykład:

window.parent.$.modal.close();

JQuery jest dołączany do window obiektu i tym jest window.parent.

 8
Author: Álvaro González,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-13 19:31:44

Można uzyskać dostęp do elementów okna nadrzędnego z wewnątrz ramki iframe za pomocą window.parent Tak:

// using jquery    
window.parent.$("#element_id");

Czyli to samo co:

// pure javascript
window.parent.document.getElementById("element_id");

A jeśli masz więcej niż jeden zagnieżdżony iframe i chcesz uzyskać dostęp do najwyższego iframe, możesz użyć window.top Tak:

// using jquery
window.top.$("#element_id");

Czyli to samo co:

// pure javascript
window.top.document.getElementById("element_id");
 5
Author: Amr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-21 14:29:35

W oknie rodzica wpisz :

<script>
function ifDoneChildFrame(val)
{
   $('#parentPrice').html(val);
}
</script>

I w pliku iframe src umieścić :

<script>window.parent.ifDoneChildFrame('Your value here');</script>
 5
Author: stieven,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-06 07:18:48

Działa na mnie z lekkim skrętem. W moim przypadku muszę wypełnić wartość z POPUP JS do formularza okna rodzica.

Więc użyłem $('#ee_id',window.opener.document).val(eeID);

Wspaniale!!!
 4
Author: Hitesh Patel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-27 18:59:29

U mnie też działa.

Uwaga: musimy użyć window.rodzic.dokument

    $("button", window.parent.document).click(function()
    {
        alert("Functionality defined by def");
    });
 3
Author: Yogesh Gandhi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-17 04:49:38

Może trochę za późno na grę, ale właśnie odkryłem fantastyczną wtyczkę jQuery https://github.com/mkdynamic/jquery-popupwindow . w zasadzie używa onunload callback event, więc w zasadzie nasłuchuje zamknięcia okna potomnego i wykona wszelkie niezbędne rzeczy w tym momencie. Więc naprawdę nie ma potrzeby, aby pisać jakiekolwiek JS w oknie dziecka, aby przekazać z powrotem do rodzica.

 2
Author: cj5,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-17 16:07:13

Istnieje wiele sposobów, aby to zrobić.

I) uzyskaj bezpośrednio główny rodzic.

Dla exa. chcę zamienić stronę potomną na iframe then

var link = '<%=Page.ResolveUrl("~/Home/SubscribeReport")%>';
top.location.replace(link);

Tutaj na górze.lokalizacja pobiera rodzica bezpośrednio.

II) get parent one by one,

var element = $('.iframe:visible', window.parent.document);

Tutaj jeśli masz więcej niż jeden iframe, podaj aktywny lub widoczny.

Możesz też zrobić tak, aby zdobyć kolejnych rodziców.]}
var masterParent = element.parent().parent().parent()

III) get parent by Identifier.

var myWindow = window.top.$("#Identifier")
 0
Author: Bharat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-28 13:30:42