it-roy-ru.com

Доступ дочернего iFrame DOM с родительской страницы

Вот сделка:

domain.com/page - родительская страница (document.domain = domain.com) содержит iframesub.domain.com/page - дочерний iframe (document.domain = not set) находится на поддомене

Есть ли способ получить доступ к DOM этого iframe или мне не повезло?

Блокирует ли я ту же политику Origin от форсирования document.domain в iframe, содержащемся на родительской странице? Я полагаю, что это противоречило бы цели той же политики происхождения ... Если это так, есть ли обходной путь для доступа к DOM iframe на отображаемой родительской странице?

17
timelf123

Есть выход. Когда страница в iframe загружается, сделайте следующее

parent.childGetElementById = function (id) {return document.getElementById(id);}
parent.childLoaded();

Это создаст функцию в глобальной области видимости родительской страницы (которая содержит iframe). Тогда в родительском, просто иметь следующее

function childLoaded() {var dom = childGetElementById('someid');}

Это так, поскольку у вас есть контроль над страницей, которую вы загружаете в iframe ... если нет, вам не повезло.

27
Zoidberg

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

Вы можете разговаривать из iframe с родителем, но не возвращаться в iframe снова.

7
Gats

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

0
Marcus Frödin