Подтвердить что ты не робот

Обмен глобальной переменной javascript страницы с iframe внутри этой страницы

У меня есть сценарий, в котором у меня есть страница, в которой есть тег <script> и некоторые глобальные переменные javascript. У меня также есть iframe внутри этой страницы, и я хочу иметь доступ к глобальным переменным javascript страницы в iframe.

Возможно ли это?, если да, как я могу это сделать?

4b9b3361

Ответ 1

Легко, вызывая parent.your_var_name в вашем iframe script.

Одно условие: обе страницы (основной и iframe) должны находиться в одном домене.

главная страница:

<script>
 var my_var = 'hello world!';
</script>

IFrame

<script>
  function some_fn(){
    alert(parent.my_var); //helo world!
  }
</script>

Ответ 2

Невозможно, если iframe и основной документ находятся не в одном домене (из-за политики междоменной безопасности).

Чтобы обойти это ограничение, вы можете использовать перекрестный обмен сообщениями.

Возможно, если iframe основной документ находится в одном домене, вы можете получить доступ к своим глобальным переменным. Есть объект, который принадлежит объекту окна iframe или главной странице.

Вот код для доступа к переменной iframe myvar из основного документа (или iframe) в том же домене:

document.getElementById('iframeid').contentWindow['myvar'];