2009-06-29 8 views
3

& htmlページのテキストの選択を非アクティブにします。 JavaScriptを使用したときに、&を右クリックするとCtrl + Vを使用できます。選択とコピーの防止

+2

1 - ウェブサイトが行うとき、彼らはそれを好きではないので、私は単にこれをdownvotingているフォークに反対:いいえ、右のスクリプトをクリックし

/*********************************************** * Disable Text Selection script- © Dynamic Drive DHTML code library (www.dynamicdrive.com) * This notice MUST stay intact for legal use * Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code ***********************************************/ function disableSelection(target){ if (typeof target.onselectstart!="undefined") //IE route target.onselectstart=function(){return false} else if (typeof target.style.MozUserSelect!="undefined") //Firefox route target.style.MozUserSelect="none" else //All other route (ie: Opera) target.onmousedown=function(){return false} target.style.cursor = "default" } //Sample usages //disableSelection(document.body) //Disable text selection on entire body //disableSelection(document.getElementById("mydiv")) //Disable text selection on element with id="mydiv" 

これは - 時にはWeb顧客がプログラマにこのようなことを要求することがあります。質問をしている人を罰するポイントはありません。 –

+1

これは時間の99%を実行するのは悪いことであると私は同意しますが、投票する理由はありません。それに応じて+1。 –

答えて

3

完全な解決策はありません。あなたは、javascriptのゲームをプレイすることができます(簡単にオフにする)。テキストについては見えないレイヤーを配置して、簡単に選択できないようにすることができます(ソースを簡単に表示できます)。テキストの代わりにイメージを使うことができます(ちょうど悪い)。

+0

完全プルーフソリューション=オンラインにしないでください。 :) – epascarello

+1

Foolproofはあなたが探している言葉です。 – James

6

できません。試してはいけない。あなたのユーザーを困らせないでください。

ウェブに公開すれば、コピーすることができます。技術的には、ユーザーが見るとすぐに既にコピーされています。コリウムが指摘しているように、すべての手法を回避することができます。ああ、あなたはソースコードを見ることができます。コマンドラインから生データをカールすることはできますが、JS/IMG/layerのハックはそれを防ぐことができません。

0

これを行うことを試みている他のポスターと私は原理的に同意しますが、時にはマネージャや顧客がこれを行うよう要求しているので、回答を提供する必要があります。

www.dynamicdrive.comのthis pageをチェックしてください。これは、この目的のためにいくつかのJavaScriptを提供します。具体的には、「テキスト選択スクリプトの無効化」および「右クリックスクリプトの無効化」を参照してください。

無効にテキスト選択スクリプト:

//Disable right mouse click Script 
//By Maximus ([email protected]) w/ mods by DynamicDrive 
//For full source code, visit http://www.dynamicdrive.com 
var message = "Function Disabled!"; 

/////////////////////////////////// 
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") 
+1

これを防止しようとするのは非常に悪い考えであるとマネージャーや顧客に説明する方が良いでしょう。 –

+1

真実 - これは私が試みるアプローチですが、時々彼らは足をつけてしまい、あなたは選択肢がありません。 –

+0

サンダー:それはまったく悪い考えではありません。たとえば、この文章を外部の文脈にコピーすることがEULA/TOSに違反している場合、それを難し​​いものにすることは、悪用者に負担をかけることになります。それはあなたの正面玄関をロックする(または少なくともそれを閉じる)ようなものです。 _course_は、盗難を防ぐものではありませんが、怠け者やアマチュアの泥棒に対する明確な障壁を作り出し、家に入ることの妥当性についての可能な紛争や混乱を取り除きます。 – jlarson

関連する問題