Débloquez la copie, la sélection et le clic droit sur n'importe quelle page
Un nombre surprenant de sites tentent encore de « protéger » leur contenu en désactivant la sélection de texte, la commande de copie et le menu du clic droit. Cela arrête rarement quelqu'un de déterminé, mais cela agace constamment les gens qui veulent juste saisir une citation ou un numéro de téléphone. Avec JustZix, vous pouvez tout réactiver en quelques secondes.
Pourquoi les pages bloquent la copie
Les sites désactivent la copie et la sélection de trois façons courantes : une règle CSS (user-select: none), des écouteurs d'événements JavaScript qui appellent preventDefault() sur copy, selectstart et contextmenu, et parfois une superposition transparente au-dessus du texte. JustZix vous permet de neutraliser chaque couche car votre règle s'exécute dans la page et vous contrôlez à la fois le CSS et le JS.
Étape 1 : forcer le retour de la sélection avec le CSS
Créez une règle CSS dans JustZix associée au site (ou à * pour tout) et collez ceci. Le drapeau !important surcharge la feuille de style propre au site.
* {
-webkit-user-select: text !important;
-moz-user-select: text !important;
user-select: text !important;
cursor: auto !important;
}
Ceci seul corrige la majorité des cas « je ne peux pas surligner le texte ». Si la page résiste encore, le blocage vient plutôt du JavaScript.
Étape 2 : arrêter les gestionnaires JavaScript
Ajoutez une règle JS pour la même URL. L'astuce est d'enregistrer vos écouteurs dans la phase de capture (le troisième argument true) pour qu'ils s'exécutent avant les gestionnaires du site, puis d'appeler stopImmediatePropagation() pour que le code de blocage du site ne se déclenche jamais.
['copy', 'cut', 'paste', 'selectstart', 'contextmenu', 'mousedown'].forEach(function (type) {
document.addEventListener(type, function (e) {
e.stopImmediatePropagation();
}, true);
});
JustZix exécute votre JS une fois par chargement de page, donc ceci s'attache tôt et couvre tout le document. Comme vous arrêtez seulement la propagation, le comportement par défaut du navigateur (copier réellement, afficher réellement le menu) fonctionne toujours.
Étape 3 : effacer les gestionnaires en ligne
Certaines pages définissent oncontextmenu="return false" directement sur l'élément <body>. Les écouteurs en phase de capture ne battent pas toujours les attributs en ligne, alors effacez-les aussi. Ce snippet est défensif : il vérifie que l'élément existe avant d'y toucher.
var targets = [document.body, document.documentElement];
targets.forEach(function (el) {
if (!el) return;
el.oncontextmenu = null;
el.oncopy = null;
el.onselectstart = null;
el.ondragstart = null;
});
Tout assembler
Pour un site tenace, utilisez les trois : la règle CSS plus une seule règle JS combinant les étapes 2 et 3. La règle JS combinée ressemble à ceci :
['copy', 'cut', 'paste', 'selectstart', 'contextmenu', 'mousedown', 'dragstart'].forEach(function (type) {
document.addEventListener(type, function (e) {
e.stopImmediatePropagation();
}, true);
});
var el = document.body;
if (el) {
el.oncontextmenu = null;
el.oncopy = null;
el.onselectstart = null;
}
Quand le texte est dans une superposition
Si vous voyez le texte mais que la sélection saisit une boîte vide, un élément invisible est posé par-dessus. Trouvez-le dans les DevTools et désactivez les événements de pointeur avec le CSS :
.paywall-overlay,
.copy-guard,
[class*="overlay"] {
pointer-events: none !important;
}
Soyez prudent avec les sélecteurs larges comme [class*="overlay"] — ils peuvent désactiver des boutons dont vous avez réellement besoin. Préférez le nom de classe exact une fois que vous l'avez identifié.
Astuces pour des règles fiables
- Associez la règle aussi étroitement que possible. Un motif spécifique au site est plus sûr que
*. - Gardez la règle CSS et la règle JS séparées pour pouvoir basculer chacune indépendamment pendant les tests.
- Si une page charge le contenu dynamiquement, les écouteurs en phase de capture fonctionnent toujours car ils vivent sur
document, pas sur des éléments individuels. - Rien ici n'envoie de données nulle part — cela change seulement la façon dont les événements se comportent dans votre propre navigateur.
Parcourez les exemples prêts à l'emploi pour une version en un clic de cette règle, et si vous ne l'avez pas encore installée, téléchargez JustZix pour Chrome, Firefox, Edge ou Opera. Une fois la copie de nouveau fonctionnelle, vous voudrez peut-être aussi lire notre article complémentaire sur l'acceptation automatique des bannières cookies.
Notez cet article
Aucune note — soyez le premier.