Подтвердить что ты не робот

Доступ и изменение родительской страницы из iframe (с jquery)

есть ли какой-либо способ доступа с iframe на страницу parrent (и изменение паритной страницы)?

<body>
   <iframe src="frame1.html" name="frame1" height="100%"></iframe>
   <div id="test1"></div>
</body>

В frame1.html есть <a href=..>, и я хочу добавить текст "<h1>clicked</h1>" в <div id="test1"></div>, когда был нажат <a href..>.

Спасибо.

4b9b3361

Ответ 1

Если ваша дочерняя страница (frame1.html) находится в том же домене, что и родительская страница, вы можете написать код, как показано ниже в дочернем окне:

 $('#test1', parent.document).html('<h1>clicked</h1>');

Второй параметр предоставляет context для поиска элемента, соответствующего первому параметру. Документ находится здесь: http://api.jquery.com/jQuery/#jQuery-selector-context

 jQuery( selector [, context ] )

Итак, ваш код (frame1.html) может выглядеть следующим образом:

 <a href="..." 
  onclick="$('#test1', parent.document).html('<h1>clicked</h1>');">click me</a>

Надеюсь, что это поможет.

Ответ 2

Важное примечание: Доступ к играм iframe возможен только в том случае, если оба родителя и iframe относятся к одному домену, иначе у вас нет доступа из-за политики одинакового происхождения.

Обратите внимание, что обе части имеют свой собственный документ. Доступ к родительскому объекту из iframe прост с помощью

parent.document

и от родителя это одно из следующего:

window.frames['iframeName']

(window.frames.length /*gives you the number of iframes in your document*/ )

или ссылайтесь на него с идентификатором и выполните следующие действия (следите за поддержкой!)

var iframe = document.getElementById('iframe');
var doc = iframe.contentDocument? iframe.contentDocument:iframe.contentWindow.document;

Ответ 3

Код ниже должен работать нормально:

$(parent.document).find("#selector");

Селектор из родительского документа выполняет некоторые действия. Например:

$(parent.document).find("#selector").remove();