Auto-rozwijanie „pokaż więcej", spoilerów i komentarzy
Sekcje komentarzy zwinięte do trzech wpisów. Długie posty ucięte „czytaj dalej". FAQ schowane w akordeonach. Treść jest na stronie — tylko schowana za przyciskiem. Ta reguła klika wszystkie te przyciski za Ciebie.
Wzorzec
Przyciski „rozwiń" mają jedną z dwóch cech rozpoznawczych: tekst w stylu „pokaż więcej" / „show more", albo atrybut aria-expanded="false". Reguła łapie oba i klika.
Reguła
JavaScript reguły:
const RE = /pokaż więcej|czytaj dalej|rozwiń|show more|read more|expand/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 });
Jak to działa
Regex na tekst plus aria-expanded
Jedno wyrażenie regularne, kilka wariantów po polsku i angielsku, flaga i ignoruje wielkość liter. Niezależnie sprawdzamy aria-expanded="false" — to standardowy atrybut akordeonów, działa nawet bez pasującego tekstu.
Znacznik jzExpanded
Po kliknięciu elementu ustawiamy na nim data-jz-expanded. Następnym razem funkcja go pomija. Bez tego znacznika wpadlibyśmy w pętlę: klik rozwija sekcję, sekcja zmienia DOM, MutationObserver odpala funkcję, ta klika ten sam przycisk znowu.
MutationObserver
Komentarze i listy często doładowują się po starcie strony. MutationObserver obserwuje cały <body> i wywołuje expandAll za każdym razem, gdy coś dojdzie do DOM-u — więc rozwijane są też przyciski, których przy starcie jeszcze nie było.
Pułapki
- Fałszywe trafienia. „Pokaż więcej produktów", które doładowuje sklep w nieskończoność, też zostanie kliknięte. Jak przeszkadza — zawęź regex albo selektor do konkretnego kontenera.
- Lawina mutacji. Na bardzo dynamicznych stronach
expandAllodpala się często. Działa, bo znacznikjzExpandedsprawia, że każdy kolejny przebieg jest tani — pomija już kliknięte. - Spoilery z ostrzeżeniem. Rozwinięcie spoilera czy treści wrażliwej to Twoja decyzja — reguła nie odróżnia „pokaż więcej" od „pokaż treść dla dorosłych".
Zobacz też
- Przykłady — więcej gotowych reguł JS
- Auto-pager — pokrewny wzorzec automatyzacji przeglądania
- Output Console — podejrzyj, co reguła klika
Zainstaluj JustZix — i przestań klikać „pokaż więcej" w kółko.
Oceń ten wpis
Brak ocen — oceń jako pierwszy.