@rinaz22

Как задержать js код, пока код с стороннего сервиса не загрузиться полностью?

Всем привет! Есть код стороннего сервиса, который грузиться не очень быстро. Даже когда страница полностью загружается, то элементы этого сервиса все еще загружаются.
Есть js код, который связан с кодом этого сервиса. Но вот он не выполняется, т.к. код сервиса грузиться после того, как выполняется тот js код. Как сделать так, чтобы js код ждал полной загрузки элементов того сервиса?
  • Вопрос задан
  • 157 просмотров
Решения вопроса 2
shmatuan
@shmatuan
8 year of Web, 5 years of Vue
Собственно событие которое ждёт загрузку всего
+ проверьте что не стоит async в <script>
window.addEventListener('load', () => {
    console.log('All assets are loaded')
})
Ответ написан
muzikant777
@muzikant777
PHP/Vue разработчик
Загружайте внешний скрипт из js примерно таким образом:
var loadScriptAsync = function(uri) {
    return new Promise((resolve, reject) => {
        var tag = document.createElement('script');
        tag.src = uri;
        tag.async = true;
        tag.onload = () => {
            resolve();
        };
        var firstScriptTag = document.getElementsByTagName('script')[0];
        firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
    });
}

var scriptLoaded = loadScriptAsync('external-script.js');


Ну, и далее:
scriptLoaded.then(function(){
  //код для выполнения после загрузки внешнего скрипта
});


Источник: https://medium.com/@vschroeder/javascript-how-to-e...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы