2013-05-29 25 views
45

私はwebisteでテキスト選択を無効にするにはjavascriptを使用しています。javascript:テキストを無効にする選択

コードは次のとおりです。

<script type="text/JavaScript"> 

function disableselect(e){ 
return false 
} 
function reEnable(){ 
return true 
} 
document.onselectstart=new Function ("return false") 
if (window.sidebar){ 
document.onmousedown=disableselect 
document.onclick=reEnable 
} 
</script> 

同様のスクリプトはここで見つけることができます:私はlocalhostでhttp://rainbow.arch.scriptmania.com/scripts/no_right_click.html

を:すべてのブラウザ(Firefoxの、クロム、IEとSafariが)素晴らしい仕事します。

私のライブサイト:すべてok ok Firefoxを除きます。

私の質問は以下のとおりです。

  1. 誰でもFirefoxはライブサイトおよびローカルホストのために異なる挙動を理由として提案を持っています。注:Javascriptが有効です。 http://freeware.ke-zo.com/CODES/DisableRC.txt

+4

は、私はあなたがこのためにはJavaScriptの使用を避けることをお勧めしてみましょう場合。ちょうどCSSを使用すると、あなたはCSSでテキスト選択に関する詳細情報を見つけることができます[この質問で](http://stackoverflow.com/questions/826782/css-rule-to-disable-text-selection-highlighting) –

+0

秒スクリプトはおそらく古すぎます。 !document.allを削除すると、fxサポートが破られてしまいます。 – mplungjan

+0

onselectstartはFFでサポートされておらず、正当な理由で –

答えて

131

ただ、このCSS方式を使用します:あなたがここに同じ答えを見つけることができます

body{ 
    -webkit-touch-callout: none; 
    -webkit-user-select: none; 
    -khtml-user-select: none; 
    -moz-user-select: none; 
    -ms-user-select: none; 
    user-select: none; 
} 

  • たぶん私のスクリプトはので、私はまったく同じ結果で次のことを試してみました単純すぎます。 How to disable text selection highlighting using CSS?

  • +5

    また、この回答が見つかったリンクを追加してください:http://stackoverflow.com/questions/826782/css-rule-to-disable-text-selection-highlighting#4407335 –

    +0

    ありがとうございました。体内のCSSは、IEを除くすべてのケースで機能しました。 IEのこの問題を解決するためのすっきりしたCSSソリューションはありますか?私は今、JsとCSSの組み合わせを使ってすべてのブラウザをカバーしています!! thk u。 – arpeggio

    +0

    1.なぜこのasnwerがソリューションとしてタグ付けされていないのですか?...問題の問題を最も正確かつ簡単な方法で解決します。 2.このCSS定義は、BODYだけでなく、どのHTML要素にも実装できることに注意してください。 – TheCuBeMan

    10

    JavaScriptの場合この関数を使用する:

    function disableselect(e) {return false} 
    document.onselectstart = new Function (return false) 
    document.onmousedown = disableselect 
    

    この選択の使用を可能にするために:

    function reEnable() {return true} 
    

    とどこでもあなたが欲しいこの関数を使用します。

    document.onclick = reEnable 
    
    11

    私はドラッグ機能を提供するために、スライダーUIコントロールを書いて、これは私の方法でありますユーザーがドラッグしているときにコンテンツが選択されないようにするには:

    function disableSelect(event) { 
        event.preventDefault(); 
    } 
    
    function startDrag(event) { 
        window.addEventListener('mouseup', onDragEnd); 
        window.addEventListener('selectstart', disableSelect); 
        // ... my other code 
    } 
    
    function onDragEnd() { 
        window.removeEventListener('mouseup', onDragEnd); 
        window.removeEventListener('selectstart', disableSelect); 
        // ... my other code 
    } 
    

    bindあなたのDOMに:

    <button onmousedown="startDrag">...</button> 
    

    あなたは、静的テキストを無効にしたい場合はエレメントがロードされたときにコードを実行し、すべての要素を上の選択:

    window.addEventListener('selectstart', function(e){ e.preventDefault(); }); 
    
    関連する問題