2010-07-15 79 views
1

我的一位客戶希望網站上的無副本腳本阻止人們將文本從頁面上覆制下來。是否有跨瀏覽器的方式可以做到這一點?我可能只是看一下JavaScript方法。我知道這可以由具有一定技術知識的人關閉,但對於大多數情況會起作用。html頁面沒有複製腳本

+4

我將此添加爲評論而不是答案,因爲它沒有回答您提問的問題,但是......如果您可以執行任何操作*以阻止您的客戶端下降這條路線,請做。作爲一個最終用戶,我確信你是非常清楚的,沒有什麼比這更令人沮喪的了,比那些不允許你複製文本的網站,記錄下來的東西,以後保存一個URL等等......如果可能的話,請幫助你的客戶並嘗試向他們展示他們的方式錯誤:-) – Rob 2010-07-15 08:33:43

+0

我想繼續介紹Rob說的話,同時請注意,你不能阻止最終用戶禁用JavaScript或使用Greasemonkey並忽略您的限制。 – Borealid 2010-07-15 08:39:27

+0

我也同意。他們擁有一個信息很大的網站,並希望人們付費以複製信息。我認爲他們會更好地贈送免費內容,並在會員區域提供更多內容。 – Linda 2010-07-15 08:45:38

回答

2
<script language="JavaScript"> 
// distributed by http://hypergurl.com <!-- var popup="Sorry, right-click 
is disabled.\n\nThis Site Copyright ©2000"; function noway(go) { if 
(document.all) { if (event.button == 2) { alert(popup); return false; } } if (document.layers) 
{ if (go.which == 3) { alert(popup); return false; } } } if (document.layers) 
{ document.captureEvents(Event.MOUSEDOWN); } document.onmousedown=noway; // --> 
</script> 



<script language="JavaScript1.1"> 
// distributed by http://www,hypergurl.com <!-- var debug = true; function 
right(e) { if (navigator.appName == 'Netscape' && (e.which == 3 || e.which 
== 2)) return false; else if (navigator.appName == 'Microsoft Internet Explorer' 
&& (event.button == 2 || event.button == 3)) { alert('This Page is fully 
protected!'); return false; } return true; } document.onmousedown=right; if (document.layers) 
window.captureEvents(Event.MOUSEDOWN); window.onmousedown=right; //--></script> 
3

在網上有ton of resources關於這個請求。請注意,確定的用戶將始終能夠複製網頁中的文本。

+0

谷歌結果可以改變,..如果這是一個有用的/你知道的作品,從它構建一個答案:) – Rob 2010-07-15 08:35:37

+1

我拒絕複製別人的工作時,(1)互聯網充滿了這樣的腳本和(2)我做不支持他的客戶的決定(即我100%同意你發佈的內容作爲對原始問題的評論)。 – Anax 2010-07-15 08:38:07

+0

我說「構建答案」,而不是「複製別人的工作批發」=)我之所以發佈我的筆記作爲對問題的評論,是因爲它沒有回答OP的問題。作爲一個問題的答案,谷歌搜索結果的鏈接是一個*非常*差的答案。 – Rob 2010-07-15 08:39:33

2

不是一個答案,但是這是我思考的主題:

如果你希望人們不要複製您的網站的內容,那麼不要發佈在互聯網上。 javascript將阻止用戶選擇,但用戶會感到惱火。 (例如,我有時會選擇文本以使讀取更容易,而不是複製它)

人們仍然會通過HTML源/ DOM獲取文本。 人們可以重新輸入文字或製作照片並使用OCR。

2
<script language=JavaScript> 
    var message="!!YOU CANNOT COPY ANY TEXT OR IMAGE FROM THIS SITE!"; 
    function clickIE4() 
    { 
    if (event.button==2) 
    { 
     alert(message); 
     return false; 
    } 
    } 
    function clickNS4(e) 
    { 
    if (document.layers||document.getElementById&&!document.all) 
    { 
     if (e.which==2||e.which==3) 
     { 
     alert(message); 
     return false; 
     } 
    } 
    } 

    if (document.layers) 
    { 
    document.captureEvents(Event.MOUSEDOWN); 
    document.onmousedown=clickNS4; 
    } 
    else if (document.all&&!document.getElementById) 
    { 
    document.onmousedown=clickIE4; 
    } 
    document.oncontextmenu=new Function("alert(message);return false") 
</script> 
</head> 
<body>