我想知道如何使用 jQuery 禁用右键单击图像。
我只知道这个:
<script type="text/javascript" language="javascript">
$(document).ready(function() {
$(document).bind("contextmenu",function(e) {
return false;
});
});
</script>
我想知道如何使用 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;
});
您禁用右键单击的目的是什么。任何技术的问题在于总有办法绕过它们。firefox (firebug) 和 chrome 的控制台允许解除该事件的绑定。或者,如果您希望图像受到保护,您可以随时查看图像的临时缓存。
如果您想创建自己的上下文菜单, preventDefault 很好。只需在这里选择您的战斗。甚至像 tnyMCE 这样的大型 JavaScript 库都不能在所有浏览器上运行……这并不是因为它不可能;-)。
$(document).bind("contextmenu",function(e){
e.preventDefault()
});
就个人而言,我更喜欢开放的互联网。本机浏览器行为不应受到页面交互的阻碍。我相信可以找到其他不是右键单击的交互方式。
对于禁用右键单击选项
<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>
在 chrome 和 firefox 中,除非我使用“live”而不是“bind”,否则上述方法不起作用。
这对我有用:
$('img').live('contextmenu', function(e){
return false;
});
是否可以在完成后在图像上放置单独的水印时保留右键单击和下载的功能。当然,这不会阻止屏幕截图,但认为这可能是一个很好的中间立场。