2012-01-21 33 views
25

Tôi đã có ứng dụng bài kiểm tra. Trường hợp robot hỏi các câu hỏi khác nhau trong trò chuyện, câu hỏi này thuộc về các lĩnh vực khác nhau của kiến ​​thức. Người dùng trả lời câu hỏi trước, nhận điểm. Vấn đề là, một số người dùng googling câu trả lời. Tôi muốn bằng cách nào đó ngăn người dùng đối phó với câu hỏi từ trang web và câu trả lời googling.Ngăn sao chép văn bản trong trang web

Tôi thậm chí không chắc chắn, điều này là có thể, dù sao có lẽ ai đó có bất kỳ ý tưởng nào

+3

Bạn dự định ngăn mọi người bằng bộ nhớ hoạt động như thế nào khi nhập nội dung vào công cụ tìm kiếm? –

+0

Nhập văn bản yêu cầu nhiều thời gian hơn. Trong khi nhập, câu hỏi tiếp theo sẽ được yêu cầu – Anton

+0

tạo màn hình toàn màn hình và nếu màn hình bị mất tiêu cự hoặc thoát chế độ toàn màn hình, hãy phát hiện và hủy thử nghiệm vĩnh viễn. –

Trả lời

58

đây: How to disable text selection highlighting using CSS?

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

Không cho phép họ từ việc có thể để trả lời khi sự kiện onBlur của cửa sổ được sa thải. Họ vẫn có thể sử dụng các thiết bị khác, nhưng họ sẽ không thể ăn gian trên cùng một máy tính.

+0

Tốt, cảm ơn bạn – Anton

+0

Điều này cũng tốt cho việc đặt div của vùng chứa nơi bạn có thể hiển thị bản đồ từ Google Maps, MapQuest, v.v. –

+0

Tuyệt vời. Tôi đã sử dụng chức năng này với [plugin sương mù] (http://nbartlomiej.github.io/foggy/) để ẩn nội dung trước khi đăng ký. – JacobLett

9

Không có cách nào tốt để thực hiện việc này. Một kẻ lừa đảo sẽ có thể làm việc xung quanh khá nhiều thứ.

Điều duy nhất cần lưu ý là xuất các câu hỏi dưới dạng hình ảnh được tạo động. Điều đó sẽ bảo vệ chống sao chép-dán. Tuy nhiên, bạn sẽ phải quyết định mức độ bảo vệ thực sự là như thế nào - hầu hết các câu hỏi ngắn có thể được nhập vào Google trong thời gian ngắn, phải không?

0

Bạn có thể truy vấn từng câu trả lời được cung cấp với google và trong trường hợp không có kết quả khớp chính xác, rất có khả năng người dùng đã nhập nó bằng chính anh ấy và bạn có thể cấp điểm.

3

Bạn có thể đặt PNG trong suốt lên trên phần tử chứa câu đố/câu hỏi không?

16

Trong thẻ div của bạn, nơi bạn dán câu hỏi của bạn, hãy thêm dòng mã sau đây:

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

Điều này sẽ ngăn sao chép bất cứ điều gì đó là trong các thẻ ...

4

Bạn cũng có thể làm trang một hình ảnh thay vì html/văn bản.

Không dễ sao chép văn bản từ hình ảnh. Nó sẽ phải được lưu lại và OCR'd.

3

Lưu ý rằng câu hỏi này có thể được tìm thấy qua Google bằng những người muốn override một quy tắc không sao chép qua một kịch bản Greasemonkey hoặc tương tự ở phía trình duyệt.

Bên cạnh đó để chọn vô hiệu, tôi đã nhìn thấy chiến thuật sau đây trong ít nhất một trang web:

<body oncopy="return false" onpaste="return false" oncut="return false">...</body> 
-1
<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

Nếu bạn đang sử dụng JQuery sau đó sử dụng:

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

Gọi này chức năng mà bạn muốn vô hiệu hóa.

$(document).ready(function(){ 
    disableSelection(document.body); 
}); 
Các vấn đề liên quan