如何仅禁用特定图像的右键保存功能

4
我正在运营一个亚洲电子商务网站,用户会发布他们产品的图片。有没有办法仅针对页面上的1个特定图像禁用鼠标右键?
例如,在查看产品时,有一张大图片和一些缩略图。当试图在大图片上右键单击时,我想禁用右键单击,但如果他们尝试在缩略图上右键单击,则不希望禁用右键单击。
谢谢
附:我完全理解为什么不要禁用右键的可用性原因,但在亚洲,版权和图像盗窃比北美国家更严重。此外,这更多是为了卖家的安心,而不是实际保护内容。

请理解,即使右键完全禁用,也完全可以通过其他几种方式轻松下载任何图像。 - philfreo
2
他说这并不是为了安全目的。 - Ikke
给图片加水印,在 Photoshop 中需要 12 秒钟。 - epascarello
尝试使用这个插件 https://github.com/thatisuday/copynote - Uday Hiwarale
4个回答

10

9
虽然它不符合W3C标准,但是将oncontextmenu="return false;"作为属性应该可以完全满足您的需求。

2
这仍然会让某人很容易绕过。更强大的解决方案是手动交付受版权保护的图像(将图像存储为本地文件,并将所有图像请求重定向到执行权限检查并在最佳情况下返回图像二进制的处理程序)。想出更安全的方法并不难,但需要一些创意。通过将图像分成几部分并使用CSS将它们拼接起来来拼图。使用Flash或类似技术传递您的图像。归根结底,请记住,您可以截屏的任何内容都可能被盗取。 - Steven
谢谢Steven。是的,我明白绕过几乎所有这些Javascript“内容保护”方法是如此容易。我只需要一些简单的东西来让客户满意,而这个oncontextmenu属性已经解决了问题。谢谢! - justinl
大多数浏览器都可以在浏览器设置中覆盖此设置,因此这是一种浪费。 - epascarello

8

完全阻止人们使用是徒劳的,然而,我倾向于使用一个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>

玩弄它以获得您想要的效果。为了使其更具语义化,您可以将文本放置在空的
“Image is copyright”
中,然后对其进行text-indent: -9999px。我经常尝试将空元素转换为语义化元素。
话虽如此,我绕过这样做的人(例如eBay)最喜欢的方法是使用Firefox插件Nuke Anything Enhanced。使用
超过图像技巧需要我再花费约2秒钟才能绕过。

嗨,Alex,我尝试了你的div容器方法,但是遇到了一些问题,无法让它正常工作。不管怎样,感谢你的建议 :) - justinl
在当前的IE、FF和Chrome浏览器中运行得非常好 :) 谢谢! - rustyx
惊人且易于使用,对我非常有效。赞! - Hassan Khan

0
如果您在Web上发布图像,没有绝对可靠的方法可以防止别人保存副本。必须将其通过网络发送以显示,决心的用户可以使用诸如Wireshark或Fiddler或任何浏览器调试框架(例如Firebug)来拦截它,即使您找到了一种禁用右键单击和拖放到桌面的方法。
您可以使它变得非常微不足道,但我认为这种努力不值得。

2
我个人理解你的观点,但在亚洲,这是完全不同的思维方式。这是完全不同的文化,我曾经为此与网站所有者争论到底,直到他们说服我,仅仅能够说“是的,你不能右键点击”就能让人们安心。此外,亚洲的Facebook也没有启用右键点击功能。这只是一种常态。 - justinl
1
打印屏幕按钮在亚洲也被禁用了吗?你知道这个术语吗?它叫做“安全通过模糊性”,它唯一被证明的影响是让用户不满意。那些真正想要“窃取”图像的人无论如何都会这样做。甚至有可能一些本来不会窃取的人也会为了证明一点而这样做。还记得:为黑暗王国的客户工作被认为是有害的 ;) - anddoutoi

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