2

我一直在环顾四周,看看是否存在防止观众使用他们的右键单击选项下载我上传到我的网站的图像的好方法。我知道人们可以查看页面源中的图像 url,并且想知道您是否建议通过禁用保存图像选项来防止它们被拍摄。

4

6 回答 6

6

这是一个无法解决的问题。

只要您确实希望人们看到图像,就无法阻止他们通过多种方法(例如屏幕截图)保存它们。您可能想到的所有措施只会惹恼您的用户,而不会真正阻止他们做他们想做的事。还要考虑到观看这些图像的人会对它们产生一些兴趣(否则他们一开始就不会看),所以我们已经有了让他们保留副本的动机。

可靠地阻止人们保存图像的唯一方法是从一开始就永远不要让他们将它们复制到他们的计算机上(请记住:在另一台计算机上显示某些内容总是需要制作副本)。

一种解决方案可能是邀请人们到一个他们可以在您控制的屏幕上查看图像的地方,而不是让他们拍照。想想现代电影院,那里有夜视仪的保安人员看着观众,并拉出那些可能一直在处理任何类似设备的相机的人。

于 2011-02-09T03:05:17.650 回答
2

如果您想让它变得更加困难,请不要使用 IMG 标签。相反,使用带有“背景图像”属性的 CSS 定义图像。更棘手的是,在运行时使用 JavaScript 定义该属性,该 JavaScript 使用 base64 编码放置在页面上。

于 2011-02-09T03:02:19.150 回答
1

我建议要这样做。这很烦人,你实际上并没有保护自己。

如果必须,jQuery 可以很容易地禁用右键菜单:

    $(document).ready(function(){
        $('img').bind("contextmenu",function(){
            return false;
        });
    });
于 2011-02-09T03:03:20.710 回答
1

你可以试试这个...

onload=function(){
document.oncontextmenu=function(){return false;}
}

这将禁止上下文(鼠标右键单击)菜单的操作...

不过,如果用户知道他们在做什么,他们就可以绕过这个问题。

于 2011-02-09T02:52:47.507 回答
0

如果您使用 Microsoft Ajax Seadragon Deep Zoom 查看器查看图像,那么您可以将图像显示为许多重叠的图块 - 粘在一起真的很痛苦,难度取决于图像大小,但对于高分辨率图像,它会产生“打印屏幕”想要偷东西的人的唯一选择。

顺便说一句,contextmenu 在 div 上的效果比在图像上更好(东西冒泡),而且你不必通过不点击整个文档来冒犯人们。

按类来做,例如使用原型:

$$('.your-image-container-class').each(function(s) {s.oncontextmenu=function(){return false;}});
于 2011-12-22T12:13:54.600 回答
0

只是让你的图像如此丑陋,没有人会想要它们。

说真的,你在担心什么?

于 2011-02-09T04:10:37.847 回答