Как получить доступ к родительским элементам iframe со страницы дочернего javascript? - PullRequest
9 голосов
/ 20 сентября 2009

У меня есть 2 страницы-- Родитель и ребенок.

На родительской странице у меня есть iframe, значение которого я хочу получить в javascript дочерней страницы. Есть ли способ? .... Пожалуйста, предложите.

Ответы [ 6 ]

8 голосов
/ 22 августа 2013

на самом деле требуется только iframeElement.

изнутри дочернего документа:

 var iframe = frameElement;

и все готово.

7 голосов
/ 20 сентября 2009

Предполагая, что ваша структура страницы и фрейма выглядит следующим образом

parent (contains iframe)
   |--> child page (attempts to access iframe in parent)

и тот

  1. Источник iframe и других страниц одинаков
  2. имя iframe 'iFrame',

вы можете получить доступ к элементу с именем 'iFrameElement' в iframe, используя следующую инструкцию JavaScript от дочернего элемента:

parent.frames['iFrame'].document.getElementById('iFrameElement').value;

или просто следующее от родителя, содержащего iframe

frames['iFrame'].document.getElementById('iFrameElement').value;

Поскольку имя кадра является неопределенным во время выполнения, вы можете вернуться к использованию номера кадра в массиве window.frames следующим образом (от дочернего элемента)

//assuming frames[0] refers to the iframe
parent.window.frames[0].document.getElementById('iFrameElement').value;

или от родителя

//assuming frames[0] refers to the iframe
window.frames[0].document.getElementById('iFrameElement').value;
2 голосов
/ 20 сентября 2009

Используйте

parent.getElementById('elementId').value;

чтобы получить элемент. Если у вас есть несколько вложенных фреймов, вы можете получить корневого родителя с помощью

top.getElementById('elementId').value;

Либо будет работать в вашем случае.

1 голос
/ 20 сентября 2009

Вы можете использовать

window.parent.getElementById('YOUR ID').value();

чтобы получить значение из элемента input с идентификатором «YOUR ID» из родительского элемента.

0 голосов
/ 14 марта 2013

Вы можете получить элемент iframe в родительском документе изнутри iframe следующим образом:

var iframe = parent.document.getElementById(window.frameElement.id);
0 голосов
/ 20 сентября 2009

Попробуйте дать имя вашему iframe и выполните доступ к iframe вот так

window.parent.<iframe_name>.document.getElementById()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...