Kopieren, Markieren und Rechtsklick auf jeder Seite entsperren
Du landest auf einem Artikel, du willst einen Absatz in deine Notizen kopieren — und die Seite lässt dich keinen Text markieren. Rechtsklick tut nichts. Das ist kein Browser-Bug, es ist eine bewusste Sperre im JavaScript der Seite. Dieser Artikel zeigt, wie man sie mit einer einzigen JustZix-Regel aufhebt.
Wie Seiten das Kopieren blockieren
Es gibt keinen „Nur-Lesen-Modus" in HTML. Eine Seite, die das Markieren blockiert, tut es auf zwei Wegen:
- CSS —
user-select: noneauf den Textelementen. - JavaScript — Handler für die Events
copy,selectstart,contextmenu, diepreventDefault()aufrufen.
Beides lässt sich rückgängig machen, denn beides läuft im Browser — und du hast volle Kontrolle über deinen eigenen Browser.
Ist das legal?
Ja. Der Text ist bereits auf deinem Bildschirm — die Seite hat ihn dir geschickt. Das Aufheben der Kopiersperre umgeht keinen Inhaltsschutz, denn es gibt keinen; es ist nur eine UX-Hürde. Das Urheberrecht am Text selbst ist eine andere Sache — was du mit dem kopierten Fragment machst, ist deine Angelegenheit.
Die Regel — CSS plus JS
Setze das URL-Muster auf die Seite, die dich nervt (oder * global). Füge im JavaScript-Tab der Regel ein:
['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);
Wie es funktioniert
stopPropagation in der Capture-Phase
Das dritte Argument von addEventListener auf true gesetzt bedeutet die Capture-Phase. Unser Listener fängt das Event ab, bevor es den Handler der Seite erreicht, und ruft stopPropagation() auf — die Propagation stoppt, und der Handler der Seite (der mit preventDefault()) bekommt das Event nie.
Das injizierte style
Der zweite Block fügt eine CSS-Regel mit user-select: text !important hinzu. Das !important schlägt jedes user-select: none der Seite. Wir injizieren es aus JS (statt als CSS der Regel), damit es ganz ans Ende der Kaskade landet und sicher gewinnt.
Die Nur-CSS-Variante
Wenn die Sperre rein CSS ist, ist das JS unnötig — der CSS-Tab der Regel reicht:
* { user-select: text !important; -webkit-user-select: text !important; }
Versuch das zuerst. Wenn das Markieren immer noch nicht funktioniert, blockiert die Seite auch in JS und du brauchst die volle Version.
Fallstricke
- Passwortfelder. Manche Seiten blockieren das Kopieren von
password-Feldern absichtlich — diese Sperre kann sinnvoll sein, lass sie. - Später nachgeladener Inhalt. Das injizierte
<style>deckt auch Elemente ab, die nach dem Start ins DOM kommen — es funktioniert auf SPAs. - Das umgeht keine Paywall. Das Entsperren der Markierung zeigt Text, den du bereits hast. Inhalt hinter einem Login deckt es nicht auf.
Siehe auch
- Beispiele — dieses und andere fertige Snippets
- Eigene Tastenkürzel — ein weiteres Event-Listener-Muster
- Cookie-Banner verstecken — CSS für aufdringliche Elemente
Installiere JustZix — und kopiere von jeder Seite, die es dir zu verbieten versucht.
Bewerte diesen Beitrag
Noch keine Bewertungen — sei der Erste.