захватить глобальную переменную из встроенного 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".