Показать сообщение отдельно
  #2 (permalink)  
Старый 14.02.2020, 19:35
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,794

Сообщение от Jack24
Но при длительной загрузке страницы идет переполнение стека
У вас просто в коде ошибка.

В функцию setTimeout нужно передавать функцию, вы же передаете туда результат работы вашей функции WaitForImageUserYoutube, т.е. undefuned.

Попробуйте так:
window.onload = function(event) {
    function waitForImageUserYoutube() {
        var image = document.querySelector('.yt-simple-endpoint.style-scope.ytd-video-owner-renderer');
        if (!image) {
            return void setTimeout(waitForImageUserYoutube, interval || 1e3);
        }

        var onLoadCallback = function() {
            // do something
        };

        var imageIsLoaded = !(!image.complete || image.naturalWidth === 0);
        if (imageIsLoaded) {
            onLoadCallback.call(image);
        } else {
            image.onload = onLoadCallback;
        }
    };
};


PS. пересмотрите, пожалуйста, свой code style.
Межстрочное расстояние можно настроить в большинстве редакторов.

Последний раз редактировалось Nexus, 14.02.2020 в 19:39.
Ответить с цитированием