Javascript 如何使Chrome输入不可选择(但允许编辑)?

Javascript 如何使Chrome输入不可选择(但允许编辑)?,javascript,jquery,html,google-chrome,cross-browser,Javascript,Jquery,Html,Google Chrome,Cross Browser,代码: 小提琴: 其背后的想法是,用户可以键入文本,但不能突出显示文本。仍然可以使用箭头键进行更改 在Firefox和IE上,这可以根据需要100% 在Chrome上,可能在Safari上,当您专注于输入时,输入被禁用,甚至无法输入 我尝试了所有方法,从等待keydown应用禁用的选择,到尝试监视鼠标单击和选择。无论如何,如果有人能帮上忙,我将不胜感激。正如巴法雷托所建议的,这就是诀窍:也许一种完全不同的方法可以做到这一点:无论你想做什么,都可能在平板电脑上引起一些问题/phones@bfava

代码:

小提琴:

其背后的想法是,用户可以键入文本,但不能突出显示文本。仍然可以使用箭头键进行更改

在Firefox和IE上,这可以根据需要100%

在Chrome上,可能在Safari上,当您专注于输入时,输入被禁用,甚至无法输入


我尝试了所有方法,从等待
keydown
应用禁用的选择,到尝试监视鼠标单击和选择。无论如何,如果有人能帮上忙,我将不胜感激。

正如巴法雷托所建议的,这就是诀窍:

也许一种完全不同的方法可以做到这一点:无论你想做什么,都可能在平板电脑上引起一些问题/phones@bfavaretto这很好用。把它作为答案贴出来,我会接受的。可能是重复的。我把这个问题标记为另一个问题的重复,好吗?
(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();
    });
});