← Tous les articles

Tutoriels

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

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.

Essayez vous-même

Installez JustZix et collez n'importe quel snippet de cet article. Deux minutes de zéro à une règle fonctionnelle sur tous vos appareils.

Obtenir JustZix

Fonctionnalités · Comment ça marche · Exemples · Cas d'usage