我正在运营一个亚洲电子商务网站,用户可以在其中发布产品图片。有没有办法在页面上仅禁用1个特定图像的右键单击?
E.g。查看产品时,会有一个大图像,然后是产品的一些缩略图。当我试图右键单击大图像时,我想禁用右键单击,但如果他们试图右键单击缩略图,我不希望右键单击禁用。
由于
ps - 我完全理解为什么不禁用右键单击的可用性原因,但亚洲的版权和图像盗窃是一个比北美国家更大的问题。此外,对于卖家而言,这比实际保护内容更为安心。
答案 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)拦截它,即使您找到了禁用右键单击和拖放到桌面。
你可以做得稍微困难一点,但努力是不值得的,恕我直言。