Как для iframe возможно получить доступ к своим родителям DOM?

Как это возможно для сценария в <iframe> иметь какое-либо понятие страницы, содержащей его? Может сценарий в доступе кадра какой-либо контекст за пределами него? Что относительно междоменного?

Вплоть до сих пор я верил <iframe> является абсолютно агностическим к содержанию страницы, но я видел пример, который противоречит этой вере.

Что точно может и не может быть сделано из <iframe> относительно содержания страницы?

17
задан leonheess 8 May 2019 в 16:27
поделиться

3 ответа

Если содержимое iframe и его родительский элемент имеют один и тот же домен, вы можете получить доступ к DOM родительских страниц из iframe, используя parent.document.getElement ... .

Однако вы не можете использовать этот междоменный доступ (даже для разных субдоменов), так как это приведет к:

Uncaught DOMException: Blocked a frame with origin "https://example.com" from accessing a cross-origin frame.
35
ответ дан 30 November 2019 в 11:17
поделиться

Как правило, вы не можете взаимодействовать между двумя DOM через домены. Однако есть способ передавать сообщения между ними, используя хеш-часть URL-адреса iframe. Информацию о окнах iframe в том же домене см. В ответе oezi .

Это может помочь , и здесь есть много других вопросов по этой теме.

5
ответ дан 30 November 2019 в 11:17
поделиться

Если они не находятся в одном домене, вы можете передать некоторую информацию через фрагмент / хэш URL. Вот хороший пример этого процесса ...

http://www.tagneto.org/blogcode/xframe/ui.html

2
ответ дан 30 November 2019 в 11:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: