2013-03-20 76 views
2

代碼:如何使Chrome輸入無法選擇(但允許編輯)?

(function($){ 
    $.fn.ctrl = function(key, callback) { 
    if(typeof key != 'object') key = [key]; 
    callback = callback || function(){ return false; } 
    return $(this).keydown(function(e) { 
     var ret = true; 
     $.each(key,function(i,k){ 
      if(e.keyCode == k.toUpperCase().charCodeAt(0) && e.ctrlKey) { 
       ret = callback(e); 
      } 
     }); 
     return ret; 
    }); 
}; 


$.fn.disableSelection = function() { 
    $(window).ctrl(['a','s','c']); 
    return this.each(function() {   
     $(this).attr('unselectable', 'on') 
       .css({'-moz-user-select':'none', 
        '-o-user-select':'none', 
        '-khtml-user-select':'none', 
        '-webkit-user-select':'none', 
        '-ms-user-select':'none', 
        'user-select':'none'}) 
       .each(function() { 
        $(this).attr('unselectable','on') 
        .bind('selectstart',function(){ return false; }); 
       }); 
    }); 
}; 

})(jQuery); 

$(document).ready(function(){ 
    $("textarea").on('focus',function(){ 
     $(this).disableSelection(); 
    }); 
}); 

小提琴:http://jsfiddle.net/EBhya/8/

背後的想法是,用戶可以輸入,但不能突出顯示文本。仍然可以使用箭頭鍵進行更改等。

在Firefox和IE上,此功能可根據需要運行100%

在Chrome瀏覽器上,或許在Safari瀏覽器中,當您將注意力集中在輸入上時,輸入被禁用,甚至無法輸入。

我已經嘗試了一切,從等待到​​應用禁用的選擇,試圖監視鼠標點擊和選擇。無論如何,如果任何人都可以提供幫助,我將不勝感激。

+2

也許完全不同的方法將做到這一點:http://stackoverflow.com/a/4656495/825789 – bfavaretto 2013-03-20 20:32:11

+0

不管它是你正在嘗試做的,可能會在平板電腦/手機上導致一些問題 – Huangism 2013-03-20 20:36:54

+0

@bfavaretto這可以很好地工作。發佈它作爲答案,我會接受它。 – 2013-03-20 20:38:33

回答

相關問題