如何在浏览器中使用jquery禁用Ctrl + A(全选)?

我试图阻止从页面复制信息(当然,对于非技术用户)。 我知道如何禁用使用鼠标选择文本 。 以下jquery代码有效:

$(function(){ $.extend($.fn.disableTextSelect = function() { return this.each(function(){ if($.browser.mozilla){//Firefox $(this).css('MozUserSelect','none'); }else if($.browser.msie){//IE $(this).bind('selectstart',function(){return false;}); }else{//Opera, etc. $(this).mousedown(function(){return false;}); }); }); $('.noSelect').disableTextSelect(); }); 

但是用户仍然可以使用Ctrl + A来选择整个页面。 这有什么变通方法吗?

这个代码适用于你想要的每个ctrl +键的组合65是’A’的ascii代码

如果你想检查’a’,请添加97

 $(function(){ $(document).keydown(function(objEvent) { if (objEvent.ctrlKey) { if (objEvent.keyCode == 65) { objEvent.disableTextSelect(); return false; } } }); }); 

应该工作,我直接写它没有测试..

适用于Windows(Ctrl + A)+ MacOS(CMD + A)并使用preventDefault()而不是return false

 $(function(){ $(document).keydown(function(e) { if ((e.ctrlKey || e.metaKey) && e.keyCode == 65) { e.preventDefault(); } }); }); 

有些客户真的不明白互联网是如何运作的,所以你应该尽力向他们解释,无论你做什么,都可以轻松保存向用户显示的任何内容。

充其量,您可以禁用某些内容,使最简单的用户难以复制文本。

如果你不这样做,有人会找到一种方法,通过你所设置的任何止损,他们会回到你说“嘿,我以为我告诉你把它锁定”

使用css很容易:

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

我希望它有所帮助

接受的答案不再有效,因为自从jQuery 1.9以来不再使用disableTextSelect() ,后来它被删除了,现在不再支持了。

你必须使用objEvent.PreventDefault(); – 这是在最新的jQuery和最新的浏览器中工作:

 $(function() { $(document).keydown(function(objEvent) { if (objEvent.ctrlKey) { if (objEvent.keyCode == 65) { objEvent.preventDefault(); } } }); });