Встречается на собеседованиях • сегодня
Всегда ли можно постучаться в DOM в iframe
Да, но с ограничениями из-за политики безопасности Same-Origin Policy.
Если iframe загружен с того же домена, протокола и порта, доступ к его DOM возможен через contentDocument:
javascript
const iframe = document.querySelector('iframe');
const iframeDoc = iframe.contentDocument;
iframeDoc.querySelector('h1').textContent = 'Changed!';Для кросс-доменных iframe доступ запрещён. Можно использовать postMessage для обмена сообщениями:
javascript
// Родительская страница
iframe.contentWindow.postMessage('Hello!', 'https://child-domain.com');
// Iframe
window.addEventListener('message', (e) => {
if (e.origin !== 'https://parent-domain.com') return;
console.log(e.data); // 'Hello!'
});Также важно дождаться загрузки iframe через событие load или DOMContentLoaded.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы