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

时间:2009-11-05 05:44:55

标签: javascript image right-click

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

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

由于

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

4 个答案:

答案 0 :(得分: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>

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

在说这句话时,我最喜欢绕过这样做的人(例如eBay)的方法是使用Firefox的插件Nuke Anything Enhanced。使用div覆盖图像技巧将花费我大约2秒钟来绕过。

答案 1 :(得分:6)

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

答案 2 :(得分:2)

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

img {
  pointer-events: none;
}

基本上要做的是阻止任何鼠标事件到img元素。你仍然会得到一个对话框,但与背景图像相同。

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

答案 3 :(得分:0)

如果您在网络上发布图像,则没有万无一失的方法可以阻止某人保存副本。它必须通过线路发送才能显示,并且确定的用户可以使用Wireshark或Fiddler等工具或任何浏览器调试框架(如Firebug)拦截它,即使您找到了禁用右键单击和拖放到桌面。

你可以做得稍微困难​​一点,但努力是不值得的,恕我直言。