如何使用jquery禁用右键点击选项

46

如何在网页中禁用图片的右键点击功能?


8
通常当人们质疑我的动机而不是直接回答该死的问题时,我会感到恼火。但是你真的想劫持用户的右键单击吗?如果他们想要获取你的图片,他们总会有办法……使用Firebug或者查看源代码就足以得到你任何图片的直链。 - Daniel Sloof
2
可能值得提到为什么你要尝试禁用右键点击。如果你认为这样可以保护你的图片,再想想吧——你只是在阻止那些对计算机不熟悉的人(虽然这也有其价值)。 - Wesley Murch
2
...或者是非常不正统且非常复杂的“打印屏幕” :) - Wesley Murch
3
如果保护图像是原因,真正的解决方案是使用水印。这是否又是另一个 X Y 问题? - happy
5
我希望人们能够摆脱一些高傲的想法,因为有很多原因想要这么做,不仅仅是为了阻止人们下载图片。如果发帖者想这么做,那么根据问答精神,如果你知道如何回答问题就回答。如果发帖者在回答后说“这样用户就无法下载该图片”,请继续告诉他们这并不是一个完整的解决方案。 - Morvael
显示剩余4条评论
15个回答

0

$(document).ready(function () {

$(document).ready(function() {
        $("img").on('contextmenu', function (e) {
           e.preventDefault();
        });

});


0

你还可以使用.contextmenu()快捷方法,例如:

$(document).ready(function() {
    $("#logo").contextmenu(function(e){
       return false;
    }); 
}); 
body {
    background-color: #FFF;
}
#logo {
    background: url(http://stackoverflow.com/favicon.ico) no-repeat; 
    width: 182px; 
    height: 30px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Try right-click on the logo.
<div id="logo"></div>


0
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<script>
 $(document).ready(function(){
  $(document).bind("contextmenu",function(e){
  return false;
  });
});
</script>
</head>
<body>

<p>Right click is disabled on this page.</p>

</body>
</html>

-1
$(document).mousedown(function(e) {
    if( e.button == 2 ) {
         e.preventDefault();
        return false;
    } 
});

-3

如果您想禁用图像的下载/保存,脚本无法阻止这一点。您可能会在服务器配置级别上更好地做到这一点(例如,在Apache上修改您的.htaccess)。

尝试在ServerFault上提问。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接