Désactiver la copie sur un site web

Je sais qu'il est impossible de contrecarrer les esprits les plus avancés du monde, mais j'aimerais mettre le moindre obstacle sur mon site Web pour empêcher mes étudiants de copier du texte et de publier ce texte comme réponse. (S'ils le dactylographient, ça va).

J'ai juste peur de JavaScript en raison des incohérences croisées du navigateur.

Étant donné que j'ai jQuery chargé et que je préfère utiliser jQuery autant que possible, comment puis-je:

  1. Désactiver Ctrl + c
  2. Disable Menu Edit Copy.

Si vous avez vos textes en particulier, vous pouvez mettre un div transparent sur ces divs. Deuxièmement, vous pouvez rendre tout votre texte protégé dynamique et l'injecter dans les divs à partir de javascript, où existe-t-il sous une forme codée, ce qui annulerait une «source de vue».

Il est incontestable de créer une fonction qui ferait cela, ce que vous devriez cibler, en dégageant le presse-papiers, même si, lorsque vous appuyez sur Ctrl + C, rien n'est copié dans le presse-papiers, une fonction simple comme celle-ci devrait faire l'affaire:

<script language="javascript"> function clearData(){ window.clipboardData.setData('text','') } function cldata(){ if(clipboardData){ clipboardData.clearData(); } } setInterval("cldata();", 1000); </script> <body ondragstart="return false;" onselectstart="return false;" oncontextmenu="return false;" onload="clearData();" onblur="clearData();"> 

Bien que cela puisse encore être vaincu ….

Ajoutez simplement le code suivant avant de fermer la balise </ HEAD> de votre page Web:

 <script type="text/JavaScript"> function killCopy(e){ return false } function reEnable(){ return true } document.onselectstart=new Function ("return false") if (window.sidebar){ document.onmousedown=killCopy document.onclick=reEnable } </script> 
 <script type="text/javascript" language="javascript"> $(function() { $(this).bind("contextmenu", function(e) { e.preventDefault(); }); }); </script> <script type="text/JavaScript"> function killCopy(e){ return false } function reEnable(){ return true } document.onselectstart=new Function ("return false"); if (window.sidebar) { document.onmousedown=killCopy; document.onclick=reEnable; } </script> 

// En utilisant le code ci-dessus, le clic droit sera désactivé ainsi que personne ne peut copier le contenu de votre page

Pour ce faire, vous devez bloquer le clic-souris et le menu contextuel, cliquez sur votre page Web.

Voici un exemple de code:

 <script language="JavaScript1.2"> var msgpopup="COPYING CONTENT IS PROHIBITED"; function handle(){ if(toShowMessage== "1") alert(message); if(closeSelf== "1") self.close(); return false; } function mouseDown() { if (event.button == "2" || event.button == "3"){handle();} } function mouseUp(e) { //if (document.layers || (document.getElementById && !document.all)){ if (e.which == "2" || e.which == "3"){ handle();} //} } document.onmousedown=mouseDown; document.onmouseup=mouseUp; document.oncontextmenu=new Function("alert(msgpopup);return false") </script> 

Je vous suggère d'utiliser:

 <div oncopy="return false;">Here you have protected text</div> 

Le support de cette méthode pourrait être trouvé ici: http://help.dottoro.com/ljwexqxl.php

C'est simple et à mon avis suffisant pour les utilisateurs réguliers. Pour être honnête, il n'y a aucune option pour empêcher complètement la copie de texte. On peut toujours utiliser par exemple Chrome Developer Tools et copier même du texte chargé de manière dynamique.

Pour une protection plus efficace, vous devez placer oncopy dans la <body> car sinon, il est possible de copier du texte en commençant la sélection à partir de <div> externe.

Une solution simple et valide: lier à l'événement 'copier' et l'empêcher. Vous pouvez également définir quel texte sera copié (et plus tard collé par l'utilisateur).

 document.addEventListener('copy', function (e){ e.preventDefault(); e.clipboardData.setData("text/plain", "Do not copy this site's content!"); })