如何禁用鼠标右键的“保存图片”选项?

13

我想防止用户在我的网站上右键点击图片并保存它们。我知道有许多解决方法,但我仍然需要这样做。

有什么帮助吗?

此外,该网站具有此功能 - http://finsix.com/dart/#section-colors

可以使用html、javascript、jquery。任何解决方案都可以。


1
我也可以通过截屏并使用 MS Paint 等工具来裁剪图像并将其保存在我的硬盘上 :D - Meow
更好的方法是,如果您想下载具有相同质量的视频。进入Chrome开发工具(F11或ctrl+shift+i),转到“网络”选项卡并刷新。下面会列出网络调用。即使开发人员从资产文件夹(开发人员保留其网站的图像/旋转器的位置)或第三方网站加载,它也将被列出。单击第一个,然后转到预览。然后通过单击下一个或“向下箭头”进行下一步。当您获得时。然后按右键。 - Satish Patro
3个回答

28
$("body").on("contextmenu", "img", function(e) {
  return false;
});

这是 jQuery 中的“新”方法。请记住,任何具备技术知识的人都能够绕过此方法。


做得很好。你做到了。 - michael_vons

16

将图像用作div元素的background-image,这样可以防止一些不经意的人保存它 ;)


如果您在图像上有onclick事件,当您想点击图像查看更大的尺寸时,由于图像上的背景图像,您将无法实现该操作。 - jned29
你仍然可以在容器上设置一个onclick事件,并调用一个函数来以不同的尺寸显示图片,或者像以前一样,使用该图像作为背景图像的容器。 - alexdd55
容易受影响的人? - Tudor
1
@Tudor 不是网络专家...只是普通用户,无法使用源代码查找背景图片,可以禁用JS脚本等... - alexdd55
2
@alexdd55 我不喜欢形容词“容易” :-) - Tudor

6
<script type="text/javascript">
function click (e) {
  if (!e)
    e = window.event;
  if ((e.type && e.type == "contextmenu") || (e.button && e.button == 2) || (e.which && e.which == 3)) {
    if (window.opera)
      window.alert("");
    return false;
  }
}
if (document.layers)
  document.captureEvents(Event.MOUSEDOWN);
document.onmousedown = click;
document.oncontextmenu = click;
</script>

我在selfhtml.org上找到了这个脚本。
这个函数最初是设计用来禁用客户端的上下文菜单并插入自己的上下文菜单。但它也可以用于此目的。
但请记住:使用浏览器插件,如NoScript,或打开图像URL,用户可能会绕过此功能。

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