доступ к переменной на родительской странице из iframe - PullRequest
4 голосов
/ 08 октября 2010

У меня есть страница с iframe, которая содержит HTML-страницу.Я хочу получить доступ к переменной Javascript на родительской странице изнутри iframe.Имя переменной на главной странице: observer.

Я пробовал это

parent.observer = 'aadasds';

, но я получаю следующую ошибку:

В доступе отказано для получения свойства Window.observer от

.

Ответы [ 2 ]

3 голосов
/ 08 октября 2010

Обмен значениями между iframes (и родительским) разрешен только в том случае, если оба сайта принадлежат одному домену. Если они это сделают, ваш пример должен просто работать. Если они этого не делают, браузеры блокируют общение.

Однако существует ряд способов, позволяющих обойти это: например, библиотека Yahoo.CrossFrame, описанная в в блоге Жюльена Ле Комта , использующая третий iframe для включения односторонней связи, или "изменить размер iframe вокруг iframe "-idea описана в блоге Адама Фортуны , обеспечивающем двустороннюю связь.

Редактировать (поскольку люди все еще читают этот старый ответ):
В современных браузерах вы можете использовать postMessage для обмена данными между фреймами. Есть много библиотек JavaScript, которые пытаются эмулировать эту функциональность и в старых браузерах. Например. неправильно используя location.hash, как это делает jquery-postmessage-plugin .

2 голосов
/ 27 декабря 2015

Звучит так, как будто ваши фреймы используют разные домены.Все основные браузеры блокируют доступ к родительским фреймам, если они не используют один и тот же домен.То есть, если у вас есть домен www.test.com и вы встраивали страницу из www.google.com и пытаетесь получить доступ / изменить что-либо с веб-сайта Google, вам будет отказано в доступе.

Другой ответ на этот вопрос объясняетAPI post message.Это также может быть использовано для отправки / получения данных из разных кадров из разных доменов.Однако то, что вы можете сделать с этим, ограничено по сравнению с тем, если у вас было два фрейма, использующих один и тот же домен.

Как говорится, вот ответ, если ваши фреймы используют один и тот же домен.1009 *

Надеюсь, это кому-нибудь поможет:)

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