Встречается на собеседованиях • сегодня

Всегда ли можно постучаться в 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.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы