Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 12.11.2021, 14:34
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от Igal
Дело в том, что я уже 2-й день парюсь и не могу понять как они вообще это сделали!? Где та функция которую они вызывают?
В браузере смотрел?
Есть ли какие-то обработчики на select?
Ответить с цитированием
  #12 (permalink)  
Старый 12.11.2021, 14:39
Интересующийся
Отправить личное сообщение для Igal Посмотреть профиль Найти все сообщения от Igal
 
Регистрация: 12.11.2021
Сообщений: 10

Сообщение от рони Посмотреть сообщение
Igal,
как вариант ...
var event = document.createEvent("Event");
      event.initEvent("change", true, true);
      var select = document.querySelector('[data-set-pagination]');
      select.value = 24;
      select.dispatchEvent(event);
Проверил. Результат тот же.
Ответить с цитированием
  #13 (permalink)  
Старый 12.11.2021, 14:43
Интересующийся
Отправить личное сообщение для Igal Посмотреть профиль Найти все сообщения от Igal
 
Регистрация: 12.11.2021
Сообщений: 10

Сообщение от ksa Посмотреть сообщение
В браузере смотрел?
Есть ли какие-то обработчики на select?
Искал по все возможным контекстам. Текст вручную приводил в порядок. Вытащил тексты всех скриптов отдельно. Перечитал как работать со списками. Я, в принципе понять не могу как можно обработать изменение на форме, если нет <form> и из <select> или <option> действие не назначено.
Ответить с цитированием
  #14 (permalink)  
Старый 12.11.2021, 14:47
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Igal, JS событийный язык... Должно быть какое-то событие. Именно на него и реагируют, меняя количество элементов на странице.
Ответить с цитированием
  #15 (permalink)  
Старый 12.11.2021, 14:51
Интересующийся
Отправить личное сообщение для Igal Посмотреть профиль Найти все сообщения от Igal
 
Регистрация: 12.11.2021
Сообщений: 10

Сообщение от ksa Посмотреть сообщение
Igal, JS событийный язык... Должно быть какое-то событие. Именно на него и реагируют, меняя количество элементов на странице.
Абсолютно согласен. Я по тому и обращаюсь к гуру, что у меня мысли закончились - все до чего свои мозги дотянулись перебрал. Если можете посмотреть, адрес страницы в начале темы (это сайт магазина в Тюмени).
Ответить с цитированием
  #16 (permalink)  
Старый 12.11.2021, 15:02
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от Igal
Если можете посмотреть, адрес страницы в начале темы (это сайт магазина в Тюмени).
Неее. Я на сторонние ресурсы не хожу.
Ответить с цитированием
  #17 (permalink)  
Старый 12.11.2021, 15:30
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,698

Там все события привязаны к body и какому то родительскому div.
Сделано судя по всему так. Там нет реакции именно на change для этого select.
Есть реакция на любой change для всех select, есть реакция на input для всех инпутов. Потом идет ajax запрос со всеми параметрами и возвращается html текст, который вставляется в соответствующий div
В этом html все - и левая колонка, и селекты для сортировки и количества и сами товары.
Возвращается <div class="grid-container">.... </div>
Обращение к серверу идет из app.js. Но он минимизирован - сказать откуда точно - не могу
Ответить с цитированием
  #18 (permalink)  
Старый 13.11.2021, 10:59
Интересующийся
Отправить личное сообщение для Igal Посмотреть профиль Найти все сообщения от Igal
 
Регистрация: 12.11.2021
Сообщений: 10

Сообщение от ksa Посмотреть сообщение
Неее. Я на сторонние ресурсы не хожу.
Можно зайти через 2gis Тюмень, компания называется "крепыж сеть магазинов". 2Gis точно безопасен.
Проблема оказалась в браузере! Через манифест хрома проверил варианты. Выкладываю те которые отработались.

Сам манифест:
{
"manifest_version": 3
,"name": "Pars"
,"short_name": "Pars"
,"version": "1.0"

,"content_scripts": [
{"matches": ["https://zakrepi.ru/*"],"js": [ "zakrepi.js" ]}
]
}

Файл zakrepi.js
Вариант 1:
var lv_sort=document.querySelector("nav.sort-wrap");
if (lv_sort!=null) { // Если нужный нам узел есть
const lv_event = new Event('change', {bubbles: true}), lv_select = document.querySelector('[data-set-pagination]');
lv_select.value = 24;
lv_select.dispatchEvent(lv_event);
}

Вариант 2:
var lv_event = document.createEvent('Event');
lv_event.initEvent('change', true, true);
var lv_select = lv_sort.querySelector('[data-set-pagination]');
lv_select.value = 36;
lv_select.dispatchEvent(lv_event);


Огромное человеческое спасибо Рони
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кнопка переименования элемента списка. Setraiser Элементы интерфейса 24 05.07.2018 10:19
Не корретная работа выбора элемента в динамическом <select> CTABP Элементы интерфейса 3 19.09.2017 15:24
Считывание значения текущего выбранного элемента списка в переменную apomin Элементы интерфейса 1 15.10.2015 19:47
autocomplete, обработка элемента списка при фокусе culver jQuery 12 29.06.2014 14:52
Jquery обработка списка RAMSlader jQuery 2 13.07.2011 12:27