захватить глобальную переменную из встроенного iframe
скажем HTML-страницу (Page.htm) содержит следующее...
<script type="text/javascript">
var vara = 'varA';
</script>
Теперь эта страница загружается в iframe с другой страницы...
<iframe id="child_frame" src="http://mysite.com/Page.htm" />
С родительской страницы я хотел бы получить значение глобальной "vara" со страницы.htm.
ни одна из следующих строк не работает...
window.frames['child_frame'].window.vara;
window.frames['child_frame'].window['vara'];
window.frames['child_frame'].contentWindow['vara'];
// in fact contentWindow returns undefined!!
любая помощь будет оценили!
обновление
после просмотра этой проблемы больше и попытки различных библиотек, которые чтобы обойти эту проблему, у меня было прозрение, что, поскольку у меня есть контроль IIS как над основными, так и над встроенными веб-сайтами iframe, я могу работать в рамках правил междоменных сценариев, используя один и тот же базовый URL для различных веб-сайтов. Кроме того, библиотеки, которые обходят проблему, по-видимому, нуждаются в постоянном обновлении, поскольку поставщики браузеров ужесточают свою безопасность непрерывными обновлениями. Было бы действительно хлопотно всегда обновлять обходной путь для обхода того, что браузер пытается удержать вас от этого.
2 ответов
ваш первый синтаксис должен работать Если ты то же самое doamin.
Если IFRAME
загружает страницу из другого домена, то вы не сможете получить к нему доступ.
Это:
<iframe id="child_frame" src="http://" />
должно быть:
<iframe name="child_frame" src="http://" />
атрибут iframe " id "должен быть изменен на"name".