Назад к вопросам
Junior
72
questionbank
Как узнать, что iframe загрузился?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Существует несколько способов:
-
Через событие
load: Самый распространенный и надежный способ.const iframeElement = document.getElementById('myIframe'); iframeElement.onload = function() { // Код, выполняющийся после загрузки iframe console.log('iframe загружен!'); }; -
Через атрибут
onloadв HTML:<iframe src="somepage.html" onload="iframeLoaded()"></iframe> <script> function iframeLoaded() { // Код после загрузки console.log('iframe загружен через атрибут onload!'); } </script> -
Проверка состояния
document.readyStateвнутри iframe (если у вас есть доступ к содержимому iframe):const iframeElement = document.getElementById('myIframe'); iframeElement.onload = function() { const iframeDoc = iframeElement.contentDocument || iframeElement.contentWindow.document; if (iframeDoc.readyState === 'complete') { // Код после полной загрузки DOM внутри iframe console.log('iframe DOM загружен полностью!'); } };Этот способ менее надежен для определения готовности всех ресурсов (изображений, скриптов) внутри iframe,
loadсобытие более подходящее для этого. -
Использование
addEventListener: Более современный способ подписки на событие.const iframeElement = document.getElementById('myIframe'); iframeElement.addEventListener('load', function() { // Код после загрузки iframe console.log('iframe загружен с использованием addEventListener!'); });
Выбор спосоبا зависит от контекста и предпочтений, но событие load является наиболее универсальным и надежным для определения полной загрузки iframe, включая все его ресурсы.