Запретить копирование текста на веб-странице - PullRequest
32 голосов
/ 22 января 2012

У меня есть приложение для викторины.Когда робот задает разные вопросы в чате, эти вопросы относятся к разным областям знаний.Пользователь, который первым ответил на вопрос, получает очки.Проблема в том, что некоторые пользователи гуглят ответы.Я хочу как-то помешать пользователям справляться с вопросом с веб-страницы и гуглить ответы.

Я даже не уверен, что это возможно, в любом случае, возможно, у кого-то есть идеи

Ответы [ 9 ]

71 голосов
/ 22 января 2012

Здесь: Как отключить выделение текста с помощью CSS?

-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;

Запретить им отвечать, когда запускается событие onBlur окна. Они по-прежнему могут использовать другие устройства, но не смогут обманывать на одном компьютере.

21 голосов
/ 18 августа 2012

В тег div, куда вы вставляете свой вопрос, добавьте следующую строку кода:

<div id="test" onmousedown='return false;' onselectstart='return false;'>

Это предотвратит копирование всего, что находится внутри тегов ...

11 голосов
/ 22 января 2012

Нет хорошего способа сделать это. Мошенник сможет обойти практически все.

Единственное, что приходит в голову, это выводить вопросы в виде динамически генерируемых изображений. Это защитит от копирования. Однако вам придется решить, какая защита на самом деле - самые короткие вопросы можно быстро ввести в Google, не так ли?

6 голосов
/ 24 февраля 2014

Обратите внимание, что этот вопрос может быть найден через Google людьми, которые хотят переопределить правило отсутствия копирования через скрипт Greasemonkey или тому подобное на стороне браузера.

В дополнение квыберите отключить, я видел следующую тактику по крайней мере на одном сайте:

<body oncopy="return false" onpaste="return false" oncut="return false">...</body>
5 голосов
/ 16 августа 2013

Вы также можете сделать страницу изображением вместо html / text.

Нелегко скопировать текст из изображения.Это должно быть сохранено и OCR'd.

3 голосов
/ 22 января 2012

Не могли бы вы поместить прозрачный PNG поверх элемента, содержащего тест / вопрос?

1 голос
/ 18 октября 2017

Если вы используете JQuery, используйте:

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";
}

Вызовите эту функцию, если вы хотите отключить.

$(document).ready(function(){
     disableSelection(document.body);
});
0 голосов
/ 04 июля 2015
<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>
0 голосов
/ 22 января 2012

Вы можете запросить каждый ответ с помощью Google, и в случае, если нет точного соответствия, очень вероятно, что пользователь набрал его самостоятельно, и вы можете начислять баллы.

...