禁用右键单击图像使用jQuery

我想知道如何禁用右键点击图像使用jQuery。

我只知道这一点:

<script type="text/javascript" language="javascript"> $(document).ready(function() { $(document).bind("contextmenu",function(e) { return false; }); }); </script> 

这工作:

 $('img').bind('contextmenu', function(e) { return false; }); 

或者更新的jQuery:

 $('#nearestStaticContainer').on('contextmenu', 'img', function(e){ return false; }); 

jsFiddle的例子

你的目的是禁用右键点击。 任何技术的问题是总是有一种方法可以绕过它们。 firefox(firebug)和chrome的控制台允许解除绑定的事件。 或者如果你想要保护的图像,总是可以看看他们的临时caching的图像。

如果你想创build你自己的上下文菜单preventDefault是好的。 在这里select你的战斗。 甚至没有一个像tnyMCE这样的大型JavaScript库可以在所有的浏览器上运行……这并不是因为这是不可能的;-)。

 $(document).bind("contextmenu",function(e){ e.preventDefault() }); 

我个人更喜欢开放的互联网。 本机浏览器的行为不应该受到页面交互的阻碍。 我相信可以发现其他方式进行交互,这不是正确的点击。

在Chrome和Firefox中,除非我使用“活”而不是“绑定”,否则上述方法不起作用。

这对我工作:

 $('img').live('contextmenu', function(e){ return false; }); 

禁用右键单击选项

 <script type="text/javascript"> var message="Function Disabled!"; function clickIE4(){ if (event.button==2){ alert(message); return false; } } function clickNS4(e){ if (document.layers||document.getElementById&&!document.all){ if (e.which==2||e.which==3){ alert(message); return false; } } } if (document.layers){ document.captureEvents(Event.MOUSEDOWN); document.onmousedown=clickNS4; } else if (document.all&&!document.getElementById){ document.onmousedown=clickIE4; } document.oncontextmenu=new Function("alert(message);return false") </script> 

在图像上放置一个单独的水印后,是否可以保留右键单击和下载的能力。 当然,这不会阻止屏幕截图,但认为这可能是一个好的中间立场。

你可以试试这个:

 var message="Sorry, right-click has been disabled"; function clickIE() { if (document.all) { (message); return false; } } function clickNS(e) { if (document.layers || (document.getElementById && !document.all)) { if (e.which == 2||e.which == 3) { (message); return false; } } } if (document.layers) { document.captureEvents(Event.MOUSEDOWN); document.onmousedown = clickNS; } else { document.onmouseup = clickNS; document.oncontextmenu = clickIE; } document.oncontextmenu = new Function("return false") 

在这里签出一个演示

一个非常简单的方法是将图像作为背景添加到DIV,然后在前景中加载一个空的透明gif集,其大小与DIV相同。 这使得不那么确定。 他们不能得到的背景没有查看代码和复制的url,右键单击只是下载透明的GIF。