← Wszystkie wpisy

Poradniki

Odblokuj kopiowanie, zaznaczanie i prawy klik na każdej stronie

Trafiasz na artykuł, chcesz skopiować jeden akapit do notatek — a strona nie pozwala zaznaczyć tekstu. Prawy klik nic nie robi. To nie błąd przeglądarki, to celowa blokada w JavaScript strony. Ten artykuł pokazuje, jak ją zdjąć jedną regułą JustZix.

Jak strony blokują kopiowanie

Nie ma żadnego „trybu tylko do odczytu" w HTML. Strona, która blokuje zaznaczanie, robi to na dwa sposoby:

Oba da się obejść, bo oba działają w przeglądarce — a Ty masz nad swoją przeglądarką pełną kontrolę.

Czy to legalne?

Tak. Tekst jest już na Twoim ekranie — strona Ci go wysłała. Zdjęcie blokady kopiowania nie obchodzi żadnego zabezpieczenia treści, bo żadnego nie ma; to tylko utrudnienie UX. Co innego prawa autorskie do samego tekstu — to, co zrobisz ze skopiowanym fragmentem, to osobna sprawa.

Reguła — CSS plus JS

Wzorzec URL ustaw na stronę, która Ci przeszkadza (albo * globalnie). W zakładce JavaScript reguły wklej:

['copy', 'cut', 'contextmenu', 'selectstart', 'dragstart']
  .forEach(evt =>
    document.addEventListener(evt, e => e.stopPropagation(), true)
  );
const s = document.createElement('style');
s.textContent =
  '*{user-select:text!important;-webkit-user-select:text!important}';
document.documentElement.appendChild(s);

Jak to działa

stopPropagation w fazie capture

Trzeci argument addEventListener ustawiony na true oznacza fazę capture. Nasz listener łapie zdarzenie zanim dotrze ono do handlera strony i wywołuje stopPropagation() — propagacja się zatrzymuje, handler strony (ten z preventDefault()) nigdy nie dostaje zdarzenia.

Wstrzyknięty style

Drugi blok dorzuca regułę CSS z user-select: text !important. !important wygrywa z dowolnym user-select: none ze strony. Wstrzykujemy to z JS (a nie jako CSS reguły), żeby trafiło na sam koniec kaskady i miało pewność wygranej.

Wariant tylko-CSS

Jeśli blokada jest wyłącznie CSS-owa, sam JS jest zbędny — wystarczy w zakładce CSS reguły:

* { user-select: text !important; -webkit-user-select: text !important; }

Spróbuj najpierw tego. Jeśli zaznaczanie nadal nie działa — strona blokuje też w JS i potrzebujesz pełnej wersji.

Pułapki

Zobacz też

Zainstaluj JustZix — i kopiuj z każdej strony, która próbuje Ci tego zabronić.

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