Непонятен механизм работы с фреймами в Javascript

455
24 ноября 2016, 10:24

файл index.html

 <!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Использование встроенных окон</title>                
    <script type="text/javascript"> 
       function f() {
            var x = frames.content;
            alert(x.res);
        }   
    </script>
</head>
<body>
<div>
    <p><a href='javascript:f()'>Click</a></p>
    <iframe src="inner.html" name="content"></iframe>
    <iframe src="new.html" name="two"></iframe>
    <p><a href="javascript:g()">Click2</a></p>
</div>
<script type="text/javascript">     
var x = frames.content; 
        alert(x.res);
</script>
</body>

файл inner.html

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Cодержание внутреннего окна</title>      
    <script type="text/javascript">
         var res = 1000;            
    </script>
</head>
<body>
</body>

Вопрос: при вызове через вызов функции(ссылка click) - модальное окно отрабатывает - все выводится, как задумано При запросе вывода напрямую, без функции - значение var res undefined Почему?

Answer 1

Добрый день! Вероятно, содержимое iframe просто не успевает загрузиться, к тому времени, когда начинает выполняться ваш скрипт. Оберните его во что-нибудь вроде:

document.addEventListener("DOMContentLoaded", function(event) { 
  var x = frames.content; 
  alert(x.res);
});

Или еще как-нибудь добейтесь начала выполнения скрипта после полной загрузки страницы.

READ ALSO
Почему скрипт отправляет дважды?

Почему скрипт отправляет дважды?

У меня есть скрипт который читает сайт на наличие div с определенным классом, в этот див подгружает форму, далее при заполнении формы слушаем...

452
Не работает регулярное выражение в js

Не работает регулярное выражение в js

Что бы я не вводил, приложение переходит ко второму окну.

448
Выбор значения элемента select и подставить в тег input

Выбор значения элемента select и подставить в тег input

Есть выпадающий список (select) и текстовое поле (input) в одной форме. При выборе элемента из select я получаю его значение.

626
JS - OneSignal SDK Ищет файлы не в указанной директории

JS - OneSignal SDK Ищет файлы не в указанной директории

Здравствуйте ребята. Помогите пожалуйста понять в чем проблема.

579