← Wszystkie wpisy

Poradniki

Automatyczna akceptacja bannerów cookie bez klikania

Bannery zgody na cookie to bramka opłat nowoczesnego internetu. Płacisz tę samą opłatę na każdej stronie, każdego dnia. Krótka reguła JavaScript JustZix może zapłacić ją za ciebie — klikając przycisk akceptacji (lub odrzucenia) w chwili, gdy banner się pojawi.

Jak działają bannery

Większość okien zgody to zwykły blok HTML wstrzyknięty do strony. Zwykle zawierają przycisk z przewidywalnym tekstem — "Akceptuj", "Akceptuj wszystkie", "Zgadzam się", "Rozumiem" — lub rozpoznawalny id/klasę. Ponieważ JS JustZix działa w kontekście strony, możesz znaleźć ten przycisk i kliknąć go programowo.

Najprostsza wersja: klikaj po tekście przycisku

Ta reguła skanuje każdy przycisk na stronie i klika pierwszy, którego etykieta pasuje do listy fraz akceptacji. Ignoruje wielkość liter i przycina białe znaki.

var ACCEPT = ['accept all', 'accept', 'i agree', 'agree', 'got it', 'allow all'];

function clickConsent() {
  var buttons = document.querySelectorAll('button, a, [role="button"]');
  for (var i = 0; i < buttons.length; i++) {
    var label = (buttons[i].textContent || '').trim().toLowerCase();
    if (ACCEPT.indexOf(label) !== -1) {
      buttons[i].click();
      return true;
    }
  }
  return false;
}

clickConsent();

Obsługa bannerów ładujących się z opóźnieniem

Wiele menedżerów zgody (strona uruchamia je przez menedżer tagów) wstrzykuje banner sekundę lub dwie po załadowaniu. JustZix uruchamia twój JS raz na załadowanie strony, więc pojedyncze wywołanie może przegapić opóźniony banner. Użyj MutationObserver, aby obserwować nowe węzły i ponawiać próbę, a następnie zatrzymaj się, gdy się uda.

var ACCEPT = ['accept all', 'accept', 'i agree', 'agree', 'got it', 'allow all'];

function clickConsent() {
  var buttons = document.querySelectorAll('button, a, [role="button"]');
  for (var i = 0; i < buttons.length; i++) {
    var label = (buttons[i].textContent || '').trim().toLowerCase();
    if (ACCEPT.indexOf(label) !== -1) { buttons[i].click(); return true; }
  }
  return false;
}

if (!clickConsent()) {
  var observer = new MutationObserver(function () {
    if (clickConsent()) observer.disconnect();
  });
  observer.observe(document.documentElement, { childList: true, subtree: true });
  setTimeout(function () { observer.disconnect(); }, 10000);
}

Zabezpieczenie setTimeout rozłącza obserwatora po dziesięciu sekundach, więc nigdy nie działa wiecznie na stronie, która nie ma bannera.

Celowanie w konkretną platformę zgody

Jeśli przeglądasz tylko garstkę stron, namierz dokładny przycisk selektorem — to szybsze i unika przypadkowych kliknięć. Zbadaj banner w DevTools, skopiuj id lub klasę i użyj jej bezpośrednio.

function clickById(selectors) {
  for (var i = 0; i < selectors.length; i++) {
    var el = document.querySelector(selectors[i]);
    if (el) { el.click(); return true; }
  }
  return false;
}

clickById([
  '#onetrust-accept-btn-handler',
  '.cookie-consent__accept',
  'button[data-testid="accept-all"]'
]);

Wolisz odrzucać?

Użytkownicy dbający o prywatność mogą odwrócić logikę — wystarczy podmienić listę fraz. Wiele bannerów wymaga teraz z mocy prawa przycisku "Odrzuć wszystkie", więc działa to na wielu stronach.

var REJECT = ['reject all', 'reject', 'decline', 'necessary only', 'only necessary'];

var buttons = document.querySelectorAll('button, a, [role="button"]');
for (var i = 0; i < buttons.length; i++) {
  var label = (buttons[i].textContent || '').trim().toLowerCase();
  if (REJECT.indexOf(label) !== -1) { buttons[i].click(); break; }
}

Dobre praktyki

Zdobądź przetestowaną kopię z gotowych przykładów lub pobierz JustZix, jeśli zaczynasz od zera. Połącz to z naszym poradnikiem o automatycznym rozwijaniu ukrytej treści, aby uzyskać płynniejsze czytanie.

Oceń ten wpis

Brak ocen — oceń jako pierwszy.

Wypróbuj samodzielnie

Zainstaluj JustZix i wklej dowolny snippet z tego artykułu. Dwie minuty od zera do działającej reguły na wszystkich Twoich urządzeniach.

Pobierz JustZix

Funkcje · Jak to działa · Przykłady · Zastosowania