Автоматически раскрывай «показать ещё», спойлеры и комментарии
Секции комментариев, сведённые к трём записям. Длинные посты, обрезанные «читать полностью». FAQ, спрятанные в аккордеоне. Контент на странице — просто убран за кнопку. Это правило нажимает все эти кнопки за тебя.
Паттерн
У кнопок раскрытия один из двух признаков: текст вроде «показать ещё» / «читать полностью», или атрибут aria-expanded="false". Правило ловит оба и кликает.
Правило
JavaScript правила:
const RE = /показать ещё|читать полностью|показать все|раскрыть|show more|read more|see more|expand|view all/i;
function expandAll() {
document.querySelectorAll('button, a, [role="button"]').forEach(el => {
if (el.dataset.jzExpanded) return;
const hit = RE.test(el.textContent || '')
|| el.getAttribute('aria-expanded') === 'false';
if (hit) {
el.dataset.jzExpanded = '1';
el.click();
}
});
}
expandAll();
new MutationObserver(expandAll)
.observe(document.body, { childList: true, subtree: true });
Как это работает
Regex по тексту плюс aria-expanded
Одно регулярное выражение, несколько вариантов формулировки, флаг i игнорирует регистр. Независимо мы проверяем aria-expanded="false" — стандартный атрибут аккордеонов, который работает даже без совпадающего текста.
Маркер jzExpanded
После клика по элементу мы ставим ему data-jz-expanded. В следующий раз функция его пропускает. Без этого маркера мы попали бы в цикл: клик раскрывает секцию, секция меняет DOM, MutationObserver запускает функцию, она перекликает ту же кнопку.
MutationObserver
Комментарии и списки часто загружаются после запуска страницы. MutationObserver наблюдает за всем <body> и вызывает expandAll каждый раз, когда что-то добавляется в DOM — так раскрываются и кнопки, которых при запуске не существовало.
Ловушки
- Ложные срабатывания. «Показать ещё товары», загружающее магазин бесконечно, тоже будет кликнуто. Если это мешает, сузь regex или селектор до конкретного контейнера.
- Шторм мутаций. На очень динамичных страницах
expandAllсрабатывает часто. Это работает, потому что маркерjzExpandedделает каждый последующий проход дешёвым — пропускает уже кликнутое. - Спойлеры с предупреждением. Раскрывать спойлер или чувствительный контент — твоё решение — правило не отличает «показать ещё» от «показать контент для взрослых».
Смотри также
- Примеры — другие готовые JS-правила
- Auto-pager — родственный паттерн автоматизации навигации
- Output Console — наблюдай, что кликает правило
Установи JustZix — и перестань постоянно кликать «показать ещё».
Оцени эту статью
Оценок пока нет — оцени первым.