Показать сообщение отдельно
  #2 (permalink)  
Старый 17.07.2018, 02:18
Интересующийся
Отправить личное сообщение для senex Посмотреть профиль Найти все сообщения от senex
 
Регистрация: 09.12.2014
Сообщений: 10

Последовательность событий такая:

- Генерируется скрипт
- скрипт создает и вставляет в mydiv елемент <iframe>
- iframe загружает содержимое с другого ресурса

И здесь целых две трудно решаемые проблемы:

iframe - это отдельный window, который содержит свой документ. и событие load у него тоже свое, никак не связанное с load основного окна.

Далее. Скрипт асинхронный. Он может вставить iframe после того как загрузится основной документ или раньше. Он также никак не синхронизирован с выполнением вашего скрипта. Он может выполниться позже или раньше вашего скрипта. Если позже - то ваш скрипт не найдет ифрейм потому что его еще не существует и событие load навесить будет не на что. Если раньше - то событие load также может произойти раньше и повесить на него обработчик нельзя ибо поезд ушел.

Поэтому лучше не заморачиваться и сделать так - поставить картинку loader.gif на backgound:

<div class="mydiv" style="background: url('loader.gif') no-repeat center center"/>

Когда загрузится документ в iframe, то закроет эту картинку своим фоном.

Последний раз редактировалось senex, 17.07.2018 в 02:22.
Ответить с цитированием