Empêcher la copie de texte dans la page web
j'ai un questionnaire. Lorsque robot poser différentes questions dans le chat, ces questions appartiennent à différents domaines de connaissances. L'utilisateur qui a répondu à la question en premier, reçoit des points. Le problème est que certains utilisateurs googlent les réponses. Je veux en quelque sorte empêcher les utilisateurs de faire face question de la page web et googler des réponses.
Je ne suis même pas sûr, que ce soit possible, de toute façon probablement quelqu'un a eu des idées
9 réponses
ici: comment désactiver la mise en surbrillance de la sélection de texte à l'aide de CSS?
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;
les empêche de répondre lorsque l'événement onBlur de la fenêtre est déclenché. Ils peuvent toujours utiliser d'autres appareils, mais ils ne pourront pas tricher sur le même ordinateur.
dans votre balise div où vous collez votre question, ajoutez la ligne de code suivante:
<div id="test" onmousedown='return false;' onselectstart='return false;'>
ceci empêchera la copie de tout ce qui est dans les étiquettes...
Il n'y a pas de bonne façon de le faire. Un tricheur sera capable de travailler à peu près tout.
la seule chose qui vient à l'esprit est de sortir les questions comme des images générées dynamiquement. Cela protégerait contre la copie-collage. Vous aurez à décider combien d'une protection qui est vraiment, bien que la plupart des questions courtes peuvent être tapées dans Google en un rien de temps, ne sont-ils pas?
vous pouvez aussi faire de la page une image au lieu de html/text.
il n'est pas facile de copier le texte d'une image. Il faudrait le sauver et L'ocrer.
notez que cette question peut être trouvée via Google par les personnes qui veulent outrepasser une règle de non-copie via un script Greasemonkey ou similaire du côté du navigateur.
en plus de la sélection handicapante, j'ai vu la tactique suivante dans au moins un site web:
<body oncopy="return false" onpaste="return false" oncut="return false">...</body>
pourriez-vous placer un PNG transparent au-dessus de l'élément qui contient le quiz/question?
si vous utilisez JQuery, alors utilisez:
function disableSelection(target){
$(function() {
$(this).bind("contextmenu", function(e) {
e.preventDefault();
});
});
if (typeof target.onselectstart!="undefined") //For IE
target.onselectstart=function(){return false}
else if (typeof target.style.MozUserSelect!="undefined") //For Firefox
target.style.MozUserSelect="none"
else //All other route (For Opera)
target.onmousedown=function(){return false}
target.style.cursor = "default";
}
appelez cette fonction où vous voulez désactiver.
$(document).ready(function(){
disableSelection(document.body);
});
vous pouvez interroger chaque réponse donnée avec google et dans le cas où il n'y a pas de correspondance exacte, il est très probable que l'Utilisateur a tapé lui-même et vous pouvez accorder des points.
<head>
<script type='text/javascript'>
var isCtrl = false;
document.onkeyup=function(e)
{
if(e.which == 17)
isCtrl=false;
}
document.onkeydown=function(e)
{
if(e.which == 123)
isCtrl=true;
if (((e.which == 85) || (e.which == 65) || (e.which == 88) || (e.which == 67) || (e.which == 86) || (e.which == 2) || (e.which == 3) || (e.which == 123) || (e.which == 83)) && isCtrl == true)
{
alert('This is Function Disabled');
return false;
}
}
// right click code
var isNS = (navigator.appName == "Netscape") ? 1 : 0;
if(navigator.appName == "Netscape") document.captureEvents(Event.MOUSEDOWN||Event.MOUSEUP);
function mischandler(){
alert('This is Function Disabled');
return false;
}
function mousehandler(e){
var myevent = (isNS) ? e : event;
var eventbutton = (isNS) ? myevent.which : myevent.button;
if((eventbutton==2)||(eventbutton==3)) return false;
}
document.oncontextmenu = mischandler;
document.onmousedown = mousehandler;
document.onmouseup = mousehandler;
//select content code disable alok goyal
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>
</head>
<body>
<h2>Disable code right click and ctrl a, ctrl u, ctrl c, ctrl v key and f12 and select content code</h2>
<div>
Some text...
</div>
</body>