Как я могу проверить, загружен ли iframe или нет? И как я могу взаимодействовать с элементами внутри iframe? - PullRequest
0 голосов
/ 25 марта 2020

Я подошел к этому очень. Теперь я вижу внутренний документ.

var ifrm = document.getElementsByClassName("css-axxz1")[0].children[0];
var doc = ifrm.contentDocument? ifrm.contentDocument: ifrm.contentWindow.document;
console.log(doc);
doc.onload = function(){
    alert("hi");
};     

Однако там ничего не вижу.

enter image description here

Итак, я добавил onload, чтобы убедиться, что он загружается полностью.

var ifrm = document.getElementsByClassName("css-axxz1")[0].children[0];
var doc = ifrm.contentDocument? ifrm.contentDocument: ifrm.contentWindow.document;
console.log(doc);
doc.onload = function(){
    alert("hi");
};     

Но результат тот же. Это пустой документ. И предупреждение не отображается.

И я хотел бы добавить прослушиватель щелчков к элементу кнопки в iframe. Затем получите значение элемента ввода в iframe.

Но проблема в том, что кнопка не имеет идентификатора. Но у него есть имена классов.

<button color="#A13354" data-qa="ok-button-visible deep-purple-ok-button-visible" class="button__Buttoewzc s2sWPP"></button>

Как я могу их реализовать?

1 Ответ

0 голосов
/ 25 марта 2020

Вам необходимо предоставить более подробную информацию, например ссылку на кодовую ручку или jsfiddle, без которой ответить на ваш вопрос сложно.

Однако,

Я нашел следующую ссылку.

https://www.dyn-web.com/tutorials/iframes/refs/iframe.php

Примечание. Такое взаимодействие между документами возможно только в том случае, если документы имеют одинаковое происхождение. Метод postMessage предоставляет средства взаимодействия между доменами.

Для получения дополнительной информации о той же политике происхождения - https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy

После того, как вышеупомянутое имеет решено, вы можете добавить прослушиватель кликов, используя

document.getElementsByClassName("button__Buttoewzc")

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