如何禁用右键单击一个特定图像上的保存

jus*_*inl 2 javascript image right-click

我正在运营一个亚洲电子商务网站,用户可以在其中发布产品图片.有没有办法禁用页面上只有1个特定图像的右键单击?

例如,在查看产品时,会有一个大图像,然后是产品的一些缩略图.当我试图右键单击大图像时,我想禁用右键单击,但如果他们试图右键单击缩略图,我不希望右键单击禁用.

谢谢

ps - 我完全理解为什么不禁用右键单击的可用性原因,但亚洲的版权和图像盗窃是一个比北美国家更大的问题.此外,对于卖家而言,这比实际保护内容更为安心.

ale*_*lex 7

完全阻止人是徒劳的,然而,我至少让它稍微困难的首选方法是在图像的顶部放置一个div.

<div id="image-container" style="postion: relative;">
   <img src="" alt="" />
   <div style="width: 100%; height: 100%; position: absolute; top: 0; left: 0"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

玩它来获得你想要的东西.为了使它看起来更具语义,您可以将文本放在空的div"图像是版权"中,然后text-indent: -9999px对其进行操作.我经常尝试将空元素转化为语义.

在说,我最喜欢绕过这样做的人(例如eBay)的方法是使用插件Nuke Anything Enhanced for Firefox.使用divover the image技巧将花费我大约2秒钟来绕过.


Ste*_*ven 6

虽然它不符合W3C,oncontextmenu="return false;"但属性应该完全符合您的要求.

  • 这仍然会让人很容易绕过.更强大的解决方案是手动传送受版权保护的图像(将图像存储为本地文件,并将对图像的所有请求重定向到执行权限检查的处理程序,最多返回图像的二进制文件).提出更安全的方法,这并不难,但需要一些创造力.通过将图像分成几部分并使用CSS将它们拼接在一起来拼凑您的图像.使用Flash或类似技术提供图像.在一天结束时,请记住,任何可以截取屏幕截图的内容都可能被盗. (2认同)

小智 6

如果你想要的只是阻止用户保存你的图片,你可以通过使用 pointer-events css 属性来做到这一点:

img {
  pointer-events: none;
}
Run Code Online (Sandbox Code Playgroud)

本质上,这将阻止任何鼠标事件到 img 元素。您仍然会得到一个对话框,但这与背景图像是一样的。

https://developer.mozilla.org/pt-BR/docs/Web/CSS/pointer-events https://css-tricks.com/almanac/properties/p/pointer-events/