asyaevloeva
@asyaevloeva

Как достать информацию из всплывающего окна?

мне нужно получить информацию из всплывающего окна, которое появляется после клика на myObj:

myObj = document.querySelector("#my-element");
myObj.click();


когда я пытаюсь просто извлечь элементы из этого окна, но их не находит (они еще не создались к этому моменту (?))
использование document.addEventListener, window.onload и тд не помогло:

document.addEventListener("DOMContentLoaded", function(e) {
      var myElement = document.getElementsByClassName('my-class');
      console.log(myElement, myElement.length);
    });


пыталась делать так, но тоже не помогло:
async function myFunc() {
        while (document.getElementsByClassName('my-class').length < 1) {
            await new Promise(r => setTimeout(r, 500));
        }
    }
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Попробуйте с паузой несколько попыток:
const liveList = document.getElementsByClassName('my-class');
let maxAttempts = 5;
const getPopup = () => {
  if (liveList.length > 0) {
    console.log(liveList[0].textContent);
  } else if (maxAttempts-- > 0) {
    setTimeout(getPopup, 500);
  }
};

getPopup();
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@AleksRap
Ответ с таймерами не самое лучшее решение. Наверняка в той либе, которую вы используете есть возможность вызывать колбек функцию во время какого либо события (открытие/закрытие окна и т.д). Это то что вам нужно. Поиск элементов поместите в колбек, который срабатывает при открытии
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы