Как получить элемент внутри iframe динамически при наведении iframe - PullRequest
0 голосов
/ 19 ноября 2018

Мне нужно получить элемент, который находится внутри iframe, наведя курсор на элемент, например, если кнопка доступна внутри iframe, значит, мне нужно получить элемент button.

Я использовал селектор запросов (: hover), чтобы получить элемент hovered, но я могу получить элементы в iframe только из верхнего документа.Я не могу получить элемент внутри iframe.

Кто-нибудь сталкивался с этим?

1 Ответ

0 голосов
/ 19 ноября 2018

Он ограничен CORS (поэтому, как правило, вы не можете видеть виджеты, включенные с сторонних сайтов таким образом), но в других браузерах это можно сделать иначе, вам просто нужно работать с contentWindow из iframe и, возможно, использовать elementFromPoint().

Пример frame.html:

<div>Test1</div>
<div>Test2</div>
<div>Test3</div>
<div>Test4</div>
<div>Test5</div>

И содержащий test.html:

<!DOCTYPE html>
<html>
  <head>
    <title>TODO supply a title</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width">
    <script>
      function startup(){
        frame.contentWindow.document.addEventListener("click",function(event){
          frame.contentWindow.document
            .elementFromPoint(event.clientX,event.clientY).innerHTML+="!";
        });
      }
    </script>
  </head>
  <body onload="startup()">
    <iframe id="frame" width="300" height="200" src="frame.html"></iframe>
  </body>
</html>

Нажмите на элементы iframe, и к их содержанию будут добавлены восклицательные знаки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...