← Tutti gli articoli

Tutorial

Sblocca copia, selezione e clic destro su qualsiasi pagina

Capiti su un articolo, vuoi copiare un paragrafo nei tuoi appunti — e la pagina non ti lascia selezionare il testo. Il clic destro non fa nulla. Non è un bug del browser, è un blocco deliberato nel JavaScript della pagina. Questo articolo mostra come rimuoverlo con una sola regola JustZix.

Come le pagine bloccano la copia

Non esiste alcuna «modalità sola lettura» in HTML. Una pagina che blocca la selezione lo fa in due modi:

Entrambi possono essere annullati, perché entrambi vengono eseguiti nel browser — e tu hai il controllo completo del tuo browser.

È legale?

Sì. Il testo è già sul tuo schermo — la pagina te l'ha inviato. Rimuovere il blocco della copia non aggira alcuna protezione del contenuto, perché non ce n'è alcuna; è solo un fastidio UX. Il diritto d'autore sul testo stesso è un'altra questione — ciò che fai col frammento copiato dipende da te.

La regola — CSS più JS

Imposta il pattern di URL sulla pagina che ti dà fastidio (o * globalmente). Nella scheda JavaScript della regola, incolla:

['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);

Come funziona

stopPropagation nella fase di capture

Il terzo argomento di addEventListener impostato a true indica la fase di capture. Il nostro listener cattura l'evento prima che raggiunga l'handler della pagina e chiama stopPropagation() — la propagazione si ferma, e l'handler della pagina (quello con preventDefault()) non riceve mai l'evento.

Lo style iniettato

Il secondo blocco aggiunge una regola CSS con user-select: text !important. L'!important batte qualsiasi user-select: none della pagina. Lo iniettiamo dal JS (anziché come CSS della regola) affinché atterri proprio alla fine della cascata e sia certo di vincere.

La variante solo-CSS

Se il blocco è puramente CSS, il JS è inutile — basta la scheda CSS della regola:

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

Prova prima questo. Se la selezione ancora non funziona, la pagina blocca anche in JS e ti serve la versione completa.

Trappole

Vedi anche

Installa JustZix — e copia da ogni pagina che cerca di impedirtelo.

Valuta questo articolo

Nessuna valutazione — sii il primo.

Provalo tu stesso

Installa JustZix e incolla qualsiasi snippet di questo articolo. Due minuti da zero a una regola funzionante su tutti i tuoi dispositivi.

Ottieni JustZix

Funzionalità · Come funziona · Esempi · Casi d'uso