Мы используем элемент <iframe srcdoc="..."></iframe>
для загрузки некоторого встроенного HTML.Однако мы сталкиваемся с этим неожиданным поведением: при добавлении узлов javascript (т.е. динамически через jQuery('<script src="1.js"></script><script src="2.js"></script>').appendTo(jQuery('body')
) 2 узла загружаются асинхронно, при этом 2 могут выполняться до 1, что приводит к ошибкам зависимости.
Это полностьюнепредвиденное поведение и не произойдет, если мы переместим встроенный HTML-код в отдельный файл и загрузим с помощью src
.
Поведение согласовано между Chrome и FF.
Вопрос 1: Это ожидается?Это результат каких-либо спецификаций?Мы предполагаем , что это может произойти из-за того, что srcdoc
является не чем иным, как прославленной оболочкой для document.write()
, которая традиционно демонстрирует это поведение (асинхронной загрузки javascript), но мы не можем найти никаких спецификаций.
Вопрос 2 : Как мы можем это исправить, чтобы мы могли использовать srcdoc
и синхронизировать загрузку узлов JS?
Дополнительный (бонус) связанный Вопрос 3: Документ во фрейме srcdoc
, похоже, не имеет defaultView
... опять-таки согласованности между браузерами.Почему в мире это?