@ecid1

Не получается получить данные элемента в расширении Chrome?

Первый раз делаю расширение для Chrome, столкнулся с проблемой поиска элемента на странице.

Есть content_scripts
const el = document.getElementsByClassName("idValue_CTSgV");
console.log(el);

Возвращает массив с элементом
64d61df82bf31756512808.png
Но при попытке достать из элемента innerHTML
const el = document.getElementsByClassName("idValue_CTSgV")[0].innerHTML;
console.log(el);

Возникает ошибка
64d61ebe9d820690700475.png

Причём это только на том сайте, для которого пишу расширение. Пробовал аналогично получать элементы на других сайтах, всё работает.
  • Вопрос задан
  • 99 просмотров
Решения вопроса 2
@StockholmSyndrome
метод getElementsByClassName возвращает живую коллекцию HTMLCollection, то есть её размер обновляется в реальном времени в соответствии с текущей разметкой DOM-дерева

на момент, когда вы вызвали метод, элемента ещё не было в дереве, а когда вы заглянули в консоль и развернули HTMLCollection, консоль показала вам текущее состояние коллекции

для такой задачи лучше всего использовать MutationObserver
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
Вероятно элемент создается скриптом или загружается динамически.
В расширении код выполняется сразу? Добавьте setTimeout, например.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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