Ответ 1
Чтобы найти в родительском устройстве iFrame:
$('#parentPrice', window.parent.document).html();
Второй параметр для оболочки $() - это контекст для поиска. Это значение по умолчанию для документа.
У меня есть iframe и для доступа к родительскому элементу я выполнил следующий код:
window.parent.document.getElementById('parentPrice').innerHTML
Как получить тот же результат с помощью jquery?
UPDATE. Или как получить доступ к родительской странице iFrame с помощью jquery?
Чтобы найти в родительском устройстве iFrame:
$('#parentPrice', window.parent.document).html();
Второй параметр для оболочки $() - это контекст для поиска. Это значение по умолчанию для документа.
как получить доступ к родительской странице iFrame с помощью jquery
window.parent.document.
jQuery - это библиотека поверх JavaScript, а не полная замена для нее. Вам не нужно заменять каждое последнее выражение JavaScript чем-то, связанным с $.
Если вам нужно найти экземпляр jQuery в родительском документе (например, вызвать функцию утилиты, предоставляемую подключаемым модулем), используйте один из этих синтаксисов:
window.parent.$
window.parent.jQuery
Пример:
window.parent.$.modal.close();
jQuery присоединяется к объекту window
и что window.parent
есть.
в родительском окне put:
<script>
function ifDoneChildFrame(val)
{
$('#parentPrice').html(val);
}
</script>
и в файле iframe src put:
<script>window.parent.ifDoneChildFrame('Your value here');</script>
Он работает для меня с небольшим завихрением. В моем случае я должен заполнить значение из POPUP JS в форме PARENT WINDOW.
Итак, я использовал $('#ee_id',window.opener.document).val(eeID);
Отлично!!!
Да, это работает и для меня.
Примечание: нам нужно использовать window.parent.document
$("button", window.parent.document).click(function()
{
alert("Functionality defined by def");
});
Возможно, здесь немного поздно, но я только что открыл этот фантастический плагин jQuery https://github.com/mkdynamic/jquery-popupwindow. В основном он использует событие callback onUnload, поэтому он в основном слушает закрытие дочернего окна и будет выполнять любые необходимые вещи в этой точке. Так что нет необходимости писать JS в дочернем окне, чтобы вернуться к родительскому.
Вы можете получить доступ к элементам родительского окна из iframe, используя window.parent
следующим образом:
// using jquery
window.parent.$("#element_id");
Это то же самое, что:
// pure javascript
window.parent.document.getElementById("element_id");
И если у вас несколько вложенных фреймов и вы хотите получить доступ к самому верхнему iframe, вы можете использовать window.top
следующим образом:
// using jquery
window.top.$("#element_id");
Это то же самое, что:
// pure javascript
window.top.document.getElementById("element_id");
Существует несколько способов сделать это.
I) Получить основного родителя напрямую.
для exa. я хочу заменить мою дочернюю страницу на 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")