Javascript.RU

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

Пользовательский скрипт: click по элементам на чужом angular сайте
Страница полностью загружена, на ней есть таблица.
В таблице собрана информация за год и по месяцам.
Вначале она отображает информацию только за год, одной строкой.
По нажатию на ссылку в последнем столбце, она раскрывается,
и отображается информация по месяцам.

На рис. часть кода страницы.
https://hostingkartinok.com/show-ima...a88375fb49a592

Пытаюсь программно раскрыть таблицу.

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

let table = document.getElementsByClassName("table-cust table-cust-payment"); 
let col=table[1].children;
let ref=col[4].children;
let event = new MouseEvent("click");
console.log(ref[0].dispatchEvent(event));


Результат true, но таблица не раскрывается.

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

Последний раз редактировалось sergey_b89, 19.09.2021 в 12:50.
Ответить с цитированием
  #2 (permalink)  
Старый 19.09.2021, 15:15
Кандидат Javascript-наук
Отправить личное сообщение для od0201 Посмотреть профиль Найти все сообщения от od0201
 
Регистрация: 07.05.2020
Сообщений: 107

Вы запутались в "детях",
1. нет rows
2. если смотреть на картину, то порядок другой
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <div class="table-cust table-cust-payment">
    <div class="table-row"></div>
    <div class="table-row">
      <div class="table-col"></div>
      <div class="table-col"></div>
      <div class="table-col">
        <a href="">
          <span>vvvv</span>
        </a>      
      </div class="table-col">
    </div>
    <div class="table-row"></div>
  </div>
</body>
<script>
  const table = document.getElementsByClassName("table-cust table-cust-payment")
  const rows=table[0].querySelectorAll('div.table-row');
  console.log(rows);
  const cols=rows[1].querySelectorAll('div.table-col');
  console.log(cols);
  const ref=cols[2].querySelector('a');
  console.log(ref);
  const event = new MouseEvent("click");
  setTimeout (()=>{ 
    ref.dispatchEvent(event);
	}, 4000);

</script>
</html>

Сообщение от sergey_b89 Посмотреть сообщение
Подскажите, возможно ли программно раскрыть эту таблицу, так как строк может быть очень много? И как лучше это сделать?
Пробежаться по всем массивам и кликнуть на каждую, лучше с интервалом

Но лучше посмотриеть F12-Network, где видно запросы страницы и самостоятельно их сделать

Последний раз редактировалось od0201, 19.09.2021 в 15:26. Причина: 1
Ответить с цитированием
  #3 (permalink)  
Старый 20.09.2021, 21:04
Новичок на форуме
Отправить личное сообщение для sergey_b89 Посмотреть профиль Найти все сообщения от sergey_b89
 
Регистрация: 19.09.2021
Сообщений: 2

Уточняю.

1. Мой скрипт правильный, так как getElementsByClassName возвращает детей/строки. Сбил с толку фразой table.

2. Клик происходит, но вместо раскрытия таблицы, я перехожу по ссылке:
"корень сайта" и плюс "#".
Как раз та "решетка" которая находится в теге <a>.

Может на чужом angular сайте у меня не получится программно раскрыть таблицу?
Подскажите...

Последний раз редактировалось sergey_b89, 20.09.2021 в 21:09.
Ответить с цитированием
  #4 (permalink)  
Старый 20.09.2021, 22:34
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,693

Ну да. В обработчике клика должен вызываться preventDefault().
Без него будет переход по ссылки.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Нашел на сайте XSS скрипт. Помогите разобраться. klermonte Общие вопросы Javascript 0 15.02.2013 23:35
остановить скрипт если мышка не двигалась 2 минуты на этом сайте TavRox jQuery 4 17.01.2011 15:00
Скрипт подсчета страниц на сайте paveljava5 Общие вопросы Javascript 8 22.06.2010 10:55
Полоса с логотипом на чужом сайте. slider88 Общие вопросы Javascript 6 23.11.2009 10:21