Проблема в том, что этот сценарий имеет значение document.write
, которое нельзя использовать (ну, не следует использовать), когда вы загружаете сценарий любым динамическим асинхронным способом.
Функция document.write
может использоваться, когда скрипт импортируется с тегом <script>
по двум причинам:
- Браузер немедленно запускает скрипт, когда он становится доступным для него (т. Е. Когда сервер возвращает скрипт клиенту), блокируя все остальные действия до тех пор, пока скрипт не будет выполнен;
- DOM еще не завершен в тот момент, когда происходит что-то вроде (1), поэтому вызов
document.write
добавляет контент к текущему DOM.
Когда вы загружаете скрипт асинхронно, он не будет выполняться до тех пор, пока DOM не будет завершен. В этот момент вызов document.write
неявно вызывает document.open
, что на уже созданной странице сметет все.