Le site qui ajoute le truc ennuyeux "En savoir plus" est ShareThis.
Pour éviter ce mauvais comportement, vous avez trois alternatives différentes:
Désactiver les événements du presse-papiers
Ces sites Web utilisent les API Clipboard , qui permettent aux développeurs Web d'intercepter les actions de copier / couper / coller et d'exécuter du code lorsqu'elles sont effectuées. C'est ainsi que ShareThis (et d'autres sites Web comme celui-ci) fonctionne. Il attend simplement l'événement de copie et juste avant que la copie effective soit effectuée, il ajoute une "couche" de texte supplémentaire qui contient le "- Voir ..." ennuyeux.
Maintenant, la question est: existe-t-il une sorte de méthode pour désactiver les événements du presse-papiers? Malheureusement, je n'ai pas pu trouver de méthode pour le faire dans Chrome / Chromium, mais dans Firefox, c'est possible de deux manières différentes.
- Entrez
about:config
et recherchez dom.event.clipboardevents.enabled
. Double-cliquez sur la clé (réglez-la sur false
) et le tour est joué! Vous avez désactivé les événements du presse-papiers et personne ne touchera à nouveau votre presse-papiers.
- Pour les anciennes versions de Firefox (vraiment, vraiment plus anciennes), il y a cette extension qui fait exactement la même chose que l'
about:config
option.
La désactivation des événements du presse-papiers ne devrait pas nuire à l'expérience d'un site Web, car ils sont rarement utilisés et il n'y a pas vraiment de raison de les utiliser (à l'exception du spam).
Passons à la deuxième solution.
Bloquer ShareThis
Si vous n'avez pas besoin de ShareThis, vous pouvez simplement bloquer le w.sharethis.com
domaine. Le Javascript responsable du chargement de ShareThis (et de l'enregistrement ClipboardEvent
) est chargé à partir de ce site Web.
Vous pouvez le bloquer de différentes manières, allant d'un simple filtre AdBlock à la modification de votre fichier d'hôtes (ce n'est pas couvert ni lié ici car je ne peux pas mettre plus de liens en raison de ma réputation).
Un exemple de faire cela via le hosts
fichier:
127.0.0.1 w.sharethis.com
La troisième solution est la plus difficile et ne doit être utilisée qu'en dernier recours.
Désactiver la fonction de sélection sur les sites Web problématiques
Pour modifier le contenu copié dans le presse-papiers, ces sites Web utilisent l' Selection
API qui leur permet de modifier des sélections à la volée. Ainsi, une solution consiste à désactiver complètement tout type de Selection
(côté code, évidemment. Vous pourrez toujours effectuer des sélections).
Cela peut être fait avec un simple script Tampermonkey / Greasemonkey. Je l'ai testé uniquement sur Firefox car je ne peux pas installer Chrome pour le moment. Je suis désolé pour ça.
Voici le code source:
// ==UserScript==
// @name Goodbye selections
// @namespace tag: utils
// @include $put_here_a_website_you'd_like_to_disable_selections$
// @include $more_websites$
// @version 1
// @grant none
// ==/UserScript==
(function() {
var disableSelections = function() {
document.getSelection = window.getSelection = function() {
return { isCollapsed: true };
};
};
var script = document.createElement ("script");
script.appendChild (document.createTextNode ("(" + disableSelections + ")();"));
(document.body || document.head || document.documentElement).appendChild (script);
})();
Pour que cela fonctionne, vous devez créer un nouveau script Greasemonkey / Tampermonkey et ajuster les @include
directives. Vous pouvez mettre un site Web par ligne, et cela doit être fait comme @include http://bad.website.address/
.
Je l'ai testé avec les sites Web que vous avez liés et cela fonctionne sans problème. Cependant, gardez à l'esprit que cela peut causer des problèmes car les Selection
s sont utilisés par des sites Web parfaitement légitimes (par exemple, les zones de texte StackExchange les utilisent pour insérer un symbole, lorsque vous cliquez sur le bouton, à la position de votre curseur), vous devez donc activer ce script utilisateur uniquement sur les sites Web problématiques.
(notez que vous devrez peut-être supprimer les lignes commençant par //
si vous créez le script utilisateur à partir des menus Greasemonkey / Tampermonkey, ils l'ajouteront automatiquement)
L'explication du script utilisateur est assez simple. Tout d'abord, il définit une fonction nommée disableSelections
qui remplace la fonction par défaut document.getSelection
et window.getSelection
fonctionne avec une fonction qui renvoie simplement un objet contenant { isCollapsed: true }
. Pourquoi? Parce que ShareThis (j'ai vérifié leur code JS) appelle cette fonction et vérifie si la isCollapsed
propriété est définie sur true
(si c'est le cas, elle arrête «l'empoisonnement du presse-papiers»). D'autres sites Web comme celui-ci n'effectueront peut-être pas cette vérification, mais ils se retrouveront simplement avec une erreur lorsqu'ils tenteront d'appeler une fonction légitime de l' Selection
objet.
Ensuite, la fonction est injectée dans le corps / en-tête / document et elle sera automatiquement exécutée. Une question que vous pouvez vous poser est la suivante: si Javascript permet de remplacer (presque) toutes les fonctions, pourquoi n'avez-vous pas remplacé la addEventListener
fonction pour ne rien faire lorsque l'événement est copié / coupé / collé? La réponse est plutôt simple. Un script utilisateur est exécuté à un moment difficile à prévoir, cela signifie que le Javascript ShareThis peut être chargé avant le script utilisateur, et il ne fera rien. Au lieu de cela, en remplaçant simplement la window.getSelection
fonction, il n'y aura aucun problème puisque cette fonction n'est appelée que lorsqu'une copie est effectuée, et nous sommes sûrs à 100% que lorsque vous copiez un texte, le script utilisateur a déjà été chargé.
Conclusion
La solution la meilleure et la plus propre est évidemment la première, car elle désactive une API pratiquement inutile.
Le second est également valide, mais vous perdrez l'une des fonctionnalités de ShareThis.
Le troisième est le plus "hacky", mais en dernier recours, il pourrait fonctionner.
Ces actions odieuses peuvent être bloquées sur Chrome avec l'extension "Kill Evil":
https://chrome.google.com/webstore/detail/kill-evil/epieehnpcepgfiildhdklacomihpoldk
(MODIFIER) Cette extension semble causer des problèmes étranges sur Facebook, assurez-vous de la mettre sur liste blanche.
la source
Bien qu'il s'agisse d'un addon Firefox, NoScript vous permet de bloquer JavaScript à partir de n'importe quel site Web en créant une liste non fiable.
la source
Si vous cherchez un moyen de modifier automatiquement le code HTML avant qu'il ne s'affiche, Greasemonkey est l'outil et vous devez créer un script utilisateur qui effectue la modification.
De l'article Guide du débutant pour les scripts Greasemonkey dans Google Chrome :
Il existe de nombreuses informations sur Greasemonkey sur Internet, y compris de nombreux didacticiels. La plupart d'entre eux seraient pour Firefox, où Greasemonkey est originaire, mais ils s'appliquent également aujourd'hui à Chrome.
Comme le site responsable de la "Lire la suite" est
sharethis.com
. Si vous le bloquez, cela devrait cesser. Si vous avez une suite de sécurité installée, utilisez-la pour bloquer le site. Sinon, vous pouvez le bloquer à l'aide de votre fichier d'hôtes .sharethis.com
est le fournisseur qui fournit Tynt aux deux sites Web que vous m'avez fournis. Tynt semble être plutôt une technologie qu'un site Web, il peut donc bien sûr y avoir d'autres fournisseurs, mais il faut espérer qu'ils seraient plutôt rares.la source
Sur Chromium, j'ai réussi avec l' extension Absolute Enable Right Click & Copy .
Après l'avoir installé, vous pouvez ajouter votre liste d'utilisateurs des sites où l'extension est activée dans les préférences. Ou, lorsque vous êtes sur une page particulière et que vous voyez qu'elle triche avec votre presse-papiers, vous pouvez activer cette extension à la volée via son bouton de barre d'outils (cela ajoute automatiquement le site à votre liste).
la source
Vous pouvez également utiliser l'extension "Copier en texte brut" pour Chrome. Vous avez alors une option supplémentaire dans le menu en plus de la copie normale. Il a l'avantage de fonctionner dans Chrome et de ne rien casser. https://chrome.google.com/webstore/detail/copy-as-plain-text-amazin/mkkcgjeddgdnikkeoinjgbocghokolck?utm_source=chrome-app-launcher-info-dialog
la source