Как получить доступ к родительской странице iFrame с помощью jquery? - PullRequest
256 голосов
/ 07 апреля 2009

У меня есть iframe, и для доступа к родительскому элементу я реализовал следующий код:

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

Как получить тот же результат, используя jquery?
ОБНОВЛЕНИЕ : или как получить доступ к родительской странице iFrame с помощью jquery?

Ответы [ 9 ]

478 голосов
/ 07 апреля 2009

Чтобы найти в родительском элементе iFrame, используйте:

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

Вторым параметром для оболочки $ () является контекст для поиска. По умолчанию это документ.

38 голосов
/ 07 апреля 2009

как получить доступ к родительской странице iFrame с помощью jquery

window.parent.document.

jQuery - это библиотека поверх JavaScript, а не полная ее замена. Вам не нужно заменять каждое последнее выражение JavaScript чем-либо, включающим $.

12 голосов
/ 13 апреля 2013

Если вам нужно найти экземпляр jQuery в родительском документе (например, для вызова вспомогательной функции, предоставляемой плагином), используйте один из следующих синтаксисов:

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

Пример:

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

jQuery привязывается к объекту window, и это window.parent.

7 голосов
/ 21 февраля 2016

Вы можете получить доступ к элементам родительского окна из iframe, используя window.parent, например:

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

Что совпадает с:

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

И если у вас есть более одного вложенного фрейма и вы хотите получить доступ к самому верхнему фрейму, вы можете использовать window.top, например:

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

Что совпадает с:

// pure javascript
window.top.document.getElementById("element_id");
7 голосов
/ 04 апреля 2010

в родительское окно положено:

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

и в файле iframe src положить:

<script>window.parent.ifDoneChildFrame('Your value here');</script>
5 голосов
/ 23 февраля 2012

Это работает для меня с небольшим поворотом. В моем случае я должен заполнить значение от POPUP JS до формы PARENT WINDOW.

Так что я использовал $('#ee_id',window.opener.document).val(eeID);

Отлично !!!

4 голосов
/ 17 января 2011

да, это работает и для меня.

Примечание: нам нужно использовать window.parent.document

    $("button", window.parent.document).click(function()
    {
        alert("Functionality defined by def");
    });
3 голосов
/ 13 сентября 2012

Возможно, я немного опоздал к игре, но я только что обнаружил этот фантастический плагин jQuery https://github.com/mkdynamic/jquery-popupwindow. Он в основном использует событие обратного вызова onUnload, поэтому он в основном ожидает закрытия дочернего окна и будет выполнить все необходимые вещи в этой точке. Так что на самом деле нет необходимости писать JS в дочернем окне, чтобы передать его родителю.

1 голос
/ 28 марта 2016

Есть несколько способов сделать это.

I) Получить главного родителя напрямую.

Например. я хочу заменить свою дочернюю страницу на iframe тогда

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

здесь top.location напрямую получает родителя.

II) получить родителей один за другим,

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

здесь, если у вас более одного iframe, укажите активный или видимый.

вы также можете сделать так, чтобы получить дальнейших родителей,

var masterParent = element.parent().parent().parent()

III) получить родителя по Идентификатору.

var myWindow = window.top.$("#Identifier")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...