Как получ. доступ к детям iframe ошибка 'Blocked a frame with origin "https:..." from accessing a cross-origin frame.' ?

Когда обращаюсь к элементам document.getElementById() зная, что элемент есть на странице получаю null.
Только если открыть консоль разработчика и найти элементам в dom, после вызвать document.getElementById(), смогу получить элемент.
Ошибку получаю когда использую метод window.frames[0].contentDocument.getElementById(‘btn-modal__confirmAcct’).
Подскажите как получить доступ к елементу?
Спасибо!

Браузеры реализуют “same origin policy” для ифреймов. Она запрещает доступ к ифреймам с другого домена и другого протокола (например доступ к https странице с http). Это сделано для того, чтобы, любой владелец сайта не мог на своем сайте было загрузить ифрейм с почтой, в которой ты залогинен, и нащелкать в нем вместо тебя.

Варианты решения твоей ситуации:

  1. разместить обе страницы на одном домене и протоколе
  2. попробовать манипулировать document.domain значением
  3. настроить сообщение между ифреймами с помощью postMessage

Вот статья (en) чтобы начать копать.

2 лайка

Спасибо, очень мало информации по этому вопросу.