2013-05-29 18 views
45

Web sayfamda metin seçimini devre dışı bırakmak için javascript kullanıyorum.javascript: Disable Text Select

kodudur:

<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> 

benzer senaryo burada bulunabilir: benim localhost üzerinde

http://rainbow.arch.scriptmania.com/scripts/no_right_click.html: TÜM Tarayıcılar (Firefox, Chrome, IE ve Safari) büyük iş. Benim Canlı sitesinde

: Firefox HARİÇ tüm Tamam.

Sorularım şunlardır:

  1. kimse Firefox Canlı sitede ve yerel ana bilgisayar için farklı davranış neden olarak bir öneri var mı. Not: Javascript etkinleştirildi.

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

    Sen aynı cevabı burada bulabilirsiniz: http://freeware.ke-zo.com/CODES/DisableRC.txt

+4

beni bunun için Javascript kullanımını önlemek için size önerelim vaka. Sadece CSS'yi kullanın, CSS'de metin seçimi hakkında daha fazla bilgi bulabilirsiniz [bu soruda] (http://stackoverflow.com/questions/826782/css-rule-to-disable-text-selection-highlighting) –

+0

İkinci komut dosyası çok eskidir. Fx desteğini feshedeceğine inandığımdan beri document.all öğesini kaldırın. – mplungjan

+0

on-start start FF tarafından desteklenmiyor ve iyi bir sebepten dolayı –

cevap

131

Sadece bu css yöntemi kullanın:

  • Belki benim komut yüzden TAM AYNI Sonuçlarla aşağıdaki çalıştı çok basit bir yaklaşım: How to disable text selection highlighting using CSS?

  • +5

    Ayrıca, bu cevabı bulduğunuz bağlantıyı da ekleyin: http://stackoverflow.com/questions/826782/css-rule-to-disable-text-selection-highlighting#4407335 –

    +0

    Çok teşekkür ederim. Vücuttaki CSS, IE dışındaki tüm vakalar için çalıştı. IE için bu sorunu çözmek için temiz CSS çözümü var mı? Şimdi tüm tarayıcıları kapsayacak Js ve CSS kombinasyonunu kullanıyorum !! thk – arpeggio

    +0

    1. Neden asnwer çözüm olarak etiketlenmedi? ... Söz konusu sorunu en doğru ve en basit şekilde çözüyor. 2. Bu CSS tanımının sadece BODY değil, herhangi bir HTML öğesinde de uygulanabileceği belirtilmelidir. – TheCuBeMan

    10

    JavaScript için bu işlevi kullanın:

    function disableselect(e) {return false} 
    document.onselectstart = new Function (return false) 
    document.onmousedown = disableselect 
    
    seçim kullanımını bu etkinleştirmek için:

    function reEnable() {return true} 
    

    ve istediğiniz her yerde bu işlevi kullanın:

    document.onclick = reEnable 
    
    11

    Ben sürükleme özelliği sağlamak için kaydırıcı ui kontrolünü yazıyorum, bu benim yolum kullanıcının sürüklediği içeriği seçmesini engellemek için:

    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 
    } 
    

    bindsenin dom:

    elemanları yüklendiğinde statik metin, tüm eleman üzerinde seçmek kodu çalıştırmak devre dışı bırakmak istiyorsanız
    <button onmousedown="startDrag">...</button> 
    

    :

    window.addEventListener('selectstart', function(e){ e.preventDefault(); });