Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.11.2021, 11:12
Интересующийся
Отправить личное сообщение для 1111 Посмотреть профиль Найти все сообщения от 1111
 
Регистрация: 05.12.2018
Сообщений: 11

querySelector возвращает null, пока не найдешь его в devtools
Здравствуйте,

Столкнулся с очень страной ситуацией. Пытаюсь написать расширения для хром которое будет работать на странице с crm bitrix24,
суть в том, что когда я в консоле пытаюсь найти элемент

document.querySelector('.crm-entity-widget-client-contact-item.crm-entity-widget-client-contact-phone')


Мне возвращает null

Но как только с помощью инструмента разработчика хром, нахожу нужный элемент в разметке, выделив его, в той же консоле, querySelector корректно отрабатывает, как такое может быть?

Скриншот консоли
https://i.ibb.co/CB4gmwv/image.jpg

Мое предположение, что содержимое страницы грузится как-то динамически, из-за чего оно не находится, но как решить эту проблему я не понимаю, попробовал все методы поиска элемента на странице, ничего не помогло
Ответить с цитированием
  #2 (permalink)  
Старый 22.11.2021, 11:18
Интересующийся
Отправить личное сообщение для 1111 Посмотреть профиль Найти все сообщения от 1111
 
Регистрация: 05.12.2018
Сообщений: 11

Обнаружил важный момент, элемент который я пытаюсь найти, подгружаются в iframe

upd

Нашел решение, нахожу сам iframe с помощью querySelector, а объект document со всей разметкой из этого айфрейма получаю с помощью contentWindow.document

т.е.

let dealIframe = document.querySelector('.side-panel.side-panel-container > .side-panel-content-container > iframe').contentWindow.document;
let number = dealIframe.querySelector('.crm-entity-widget-client-contact-phone');

Последний раз редактировалось 1111, 22.11.2021 в 11:50.
Ответить с цитированием
  #3 (permalink)  
Старый 22.11.2021, 11:49
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,503

Элемент из iframe ты из основного окна через querySelector не получишь.
Если iframe ведёт на другой домен - вешай контенскрипт и для того домена. Если на этот же - сначала получай сам iframe, жди onload и через iframe.contentDocument.querySelector получай уже нужный элемент.
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как закрыть custombox modal? hupiwino Общие вопросы Javascript 1 28.01.2021 16:59
получение некого value и вывод его в определенный блок div Sprutenok000 Элементы интерфейса 28 24.03.2017 20:00
в getElement удаётся получить тэг через getElemetsByTagName Терехов Станислав Общие вопросы Javascript 19 19.06.2014 06:35
Чем занимаются JS-программеры. JSTalker Оффтопик 69 02.02.2011 10:18
Удалить ряд символов перед или после курсора до определенного сивола brd Javascript под браузер 3 30.10.2009 08:20