Вопросы актуальны
getEventListeners
-
Планируется ли вообще реализация подобных фич? Потому что даже nodeJS с его JSDOM не помогает блять. Это просто пиздец. Задача проще простого, обнаружить на страницы элементы для нажатия.
const jsdom = require('jsdom'); const { JSDOM } = jsdom; // HTML код, который вы хотите анализировать const html = [[SAVED_PAGE_HTML]]; // Создаем виртуальное окружение DOM с помощью jsdom const dom = new JSDOM(html); // Получаем глобальный объект window из виртуального окружения const { window } = dom; // Доступ к DOM виртуального окружения const document = window.document; // Функция для имитации getEventListeners function getEventListeners(element) { // Создаем пустой объект для хранения событий const eventListeners = {}; // Получаем список обработчиков событий для элемента const eventNames = Object.keys(element._events || {}); // Проходим по каждому типу события eventNames.forEach(eventName => { // Получаем обработчики для данного типа события const handlers = element._events[eventName]; // Добавляем в объект eventListeners eventListeners[eventName] = handlers.map(handler => handler.listener); }); return eventListeners; } // Проходим по элементам DOM и анализируем обработчики событий const allElements = document.querySelectorAll('*'); const elementsWithClickEvents = []; allElements.forEach(function(element) { const clickEvents = getEventListeners(element).click; if (clickEvents && clickEvents.length > 0) { elementsWithClickEvents.push(element); } }); // Выводим элементы с обработчиками событий click console.log('Элементы с обработчиками событий click:', elementsWithClickEvents); [[RESULT]] = elementsWithClickEventsМне серьёзно парсить сидеть //button и прочую ебалу? А div элементы как прикажите искать?