Не удается получить вложенный тег в iframe: получить пустой массив «HTMLCollection []» [дубликат]

avatar
E235
8 августа 2021 в 16:50
34
0
0

У меня есть HTML-сайт, внутри iframe которого есть тег <script>.

Я могу получить iframe, запустив:

iframe = document.getElementsByTagName("iframe")   

Когда я печатаю iframe[0], я получаю:

<iframe id="576259869" src="https://..." frameborder="0" allow="autoplay; fullscreen" allowfullscreen="" class="sc-kVrTmx jfegoL" data-ready="true"></iframe>
#document
 <html lang="en">
  <head>...</head>
  <body>
   <div id="..">...</div>
   <script>...</script>
  </body>
 </html>
</iframe>

Я пытался поймать так:

iframe[0].getElementsByTagName("script")

Но это дает мне пустой массив HTMLCollection [], хотя я вижу тег внутри iframe.

Источник
Quentin
8 августа 2021 в 16:52
0

«тег внутри iframe» — он находится не внутри iframe, а внутри документа, который находится внутри iframe.

E235
8 августа 2021 в 16:54
0

@Quentin, так что я могу получить это?

Quentin
8 августа 2021 в 16:54
0

Посмотреть дубликаты

E235
8 августа 2021 в 17:02
0

@ Квентин, хорошо, второй ответ может помочь. Когда я запускаю iframe[0].contentWindow.document, это дает мне ошибку политики происхождения

Quentin
8 августа 2021 в 17:04
0

Второй дубликат посвящен проблеме кросс-происхождения.

E235
8 августа 2021 в 17:05
0

да, это помогает под. Все еще странно, потому что я могу получить его с помощью графического интерфейса браузера, но ладно..

Quentin
8 августа 2021 в 17:07
0

Это не вирд. Вы, человек, который может получить доступ к графическому интерфейсу браузера, уже имеете разрешение на доступ к сайту, отображаемому в iframe. Мэллори (гипотетический злой хакер, написавший веб-страницу, которую вы просматриваете) не имеет разрешение на доступ к вашему онлайн-банкингу (гипотетический сайт отображается в iframe).

E235
8 августа 2021 в 17:11
0

Да, ты прав

Ответы (0)