захватить глобальную переменную из встроенного iframe - PullRequest
7 голосов
/ 17 мая 2011

скажем, HTML-страница (Page.htm) содержит следующее ...

<script type="text/javascript">
    var vara = 'varA';
</script>

Теперь эта страница загружается в iframe с другой страницы с ...

<iframe id="child_frame" src="http://mysite.com/Page.htm" />

На родительской странице я хотел бы получить значение глобального 'vara' из Page.htm.

Ни одна из следующих строк не работает ...

    window.frames['child_frame'].window.vara;

    window.frames['child_frame'].window['vara'];

    window.frames['child_frame'].contentWindow['vara']; 
    // in fact contentWindow returns undefined!!

Любая помощь будет оценена!

UPDATE

После более подробного изучения этой проблемы и опробования различных библиотек, доступных для решения этой проблемы, у меня появилось прозрение, что, поскольку у меня есть контроль IIS как над основными, так и встроенными веб-сайтами iframe, я могу работать в междоменной области правила сценариев с использованием одного и того же базового URL для различных сайтов. Кроме того, библиотеки, которые решают эту проблему, по-видимому, нуждаются в постоянном обновлении, поскольку поставщики браузеров усиливают свою безопасность с помощью постоянных обновлений. Было бы действительно непросто постоянно обновлять обходной путь, чтобы обойти то, что браузер пытается удержать вас от выполнения.

Ответы [ 2 ]

4 голосов
/ 17 мая 2011

Ваш первый синтаксис должен работать ЕСЛИ вы используете тот же Doamin .

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

2 голосов
/ 29 января 2015

Это:

<iframe id="child_frame" src="http://" />

Должно быть:

<iframe name="child_frame" src="http://" />

Атрибут iframe "id" должен быть изменен на "name».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...