2013-10-12 112 views
0

我有一個網頁(軌道上的紅寶石)與一些文本,我想保護內容,以阻止用戶複製它(CTRL + C)。以XX保護內容?

當然,我有一些「保護」,但如果用戶使用CTRL + A所有文本被選中它不夠

$(function(){ 
    $('a.fancybox').fancybox(); 
    $('.prevent_select').disableSelection(); 
}); 


$.support.selectstart = "onselectstart" in document.createElement("div"); 
$.fn.disableSelection = function() { 
    return this.bind(($.support.selectstart ? "selectstart" : "mousedown") + 
     ".ui-disableSelection", function(event) { 
     event.preventDefault(); 
    }); 
}; 

。爲了保護它,我想到了兩種方法。但我想與您分享,以獲得一些反饋。

  • 是否可以使用swf(Macromedia Flash)來顯示文本? (有些創業板?)
  • 當網頁檢測到用戶正在使用ctrl + c時,是否可以總是「刪除」用戶緩衝區?
  • 您有其他想法嗎?

我非常感謝您的反饋和幫助。

+1

這不值得去嘗試。 一方面,如果您使用Flash或圖像而不是純html,那麼殘疾人或谷歌用戶將無法閱讀它。這對你不好。另一方面,試圖用javascript或透明圖像來防止copy'n'paste是無用的。內容已經在用戶的計算機上,他可以通過查看源代碼或禁用JavaScript來提取它。這對普通用戶來說是煩人的,而那些想要強化你的語境的人可以隨時加以使用。 – spickermann

+1

這是不可能的。如果你希望用戶能夠閱讀文本,那麼他需要能夠看到它。即將其顯示在屏幕上。如果它顯示在屏幕上,可以通過各種方式來抓取它:讀取屏幕緩衝區,製作屏幕照片,檢查筆和紙並寫下來。你無法阻止這一點。 –

回答

0

您可以使用畫布繪製文本。示例:http://jsfiddle.net/ExWei/hZmM2/

您可以在文本區域放置透明圖像。 (使用CSS)

腳本用於阻擋CTRL - üCTRL - ÇCTRL -

document.ondragstart = test; 
document.onselectstart = test; 
document.oncontextmenu = test; 
function test() 
{ 
    return false; 
} 

document.oncontextmenu; 

function catchControlKeys(event) 
{ 
    var code=event.keyCode ? event.keyCode : event.which ? event.which : null; 
    if (event.ctrlKey) 
    { 
     // Ctrl+U 
     if (code == 117) return false; 
     if (code == 85) return false; 
     // Ctrl+C 
     if (code == 99) return false; 
     if (code == 67) return false; 
     // Ctrl+A 
     if (code == 97) return false; 
     if (code == 65) return false; 
    } 
} 

對於使用此腳本變化

<body> 

<body onkeypress="return catchControlKeys(event)">