web-dev-qa-db-ja.com

Webページのテキストをコピーしないようにします

クイズのアプリケーションがあります。ロボットがチャットでさまざまな質問をする場合、この質問は知識のさまざまな分野に属します。最初に質問に答えたユーザーは、ポイントを受け取ります。問題は、一部のユーザーが答えをググリングしていることです。ユーザーがWebページからの質問に対処したり、回答をグーグルで操作したりするのを何らかの形で防止したいのです。

これが可能かどうかさえわからない

34
Anton

ここ: 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イベントが発生したときに応答できないようにします。彼らはまだ他のデバイスを使用できますが、同じコンピューターでチートすることはできません。

72
mowwwalker

質問を貼り付けるdivタグに、次のコード行を追加します。

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

これにより、タグ内にあるもののコピーが防止されます...

22
Anuj Kaithwas

これを行う良い方法はありません。詐欺師はほとんどすべてを回避することができます。

頭に浮かぶのは、質問を動的に生成された画像として出力することだけです。それはコピーペーストから保護します。ただし、実際にどれだけの保護を行うかを決定する必要があります。ほとんどの短い質問はすぐにGoogleに入力できますよね。

12
Pekka 웃

この質問は、ブラウザ側でGreasemonkeyスクリプトなどを使用してオーバーライドコピー禁止ルールを実行したい人がGoogleで見つけることができることに注意してください。

無効化を選択することに加えて、少なくとも1つのWebサイトで次の戦術を見てきました。

<body oncopy="return false" onpaste="return false" oncut="return false">...</body>
6
shiggity

ページをhtml/textの代わりに画像にすることもできます。

画像からテキストをコピーするのは簡単ではありません。保存してOCRする必要があります。

5
Guest

クイズ/質問を含む要素の上に透明なPNGを配置できますか?

3
Cornel Ghiban

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

Googleでそれぞれの回答を照会できます。完全に一致するものがない場合は、ユーザーが自分で入力した可能性が非常に高いため、ポイントを付与できます。

0
Torbjörn
<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>