我一直在四处寻找是否有一种很好的方法可以阻止观看者使用他们的右键选项来下载我上传到我网站的图片。 我知道人们可以查看页面源中的图片网址,并想知道是否建议通过禁用保存图片选项来阻止他们被拍摄。
答案 0 :(得分:6)
这是一个无法解决的问题。
只要您真的希望别人看到图片,就无法阻止他们通过多种方法(例如屏幕截图)保存图像。您可能会想到的所有措施都会让您的用户烦恼,而实际上并没有阻止他们做他们想做的事情。还要考虑观看这些图像的人会对它们有兴趣(否则他们不会首先看到它们),所以我们已经有动机让他们保留副本。
可靠地防止人们保存图像的唯一方法是永远不要让他们将它们复制到计算机上(并记住:在另一台计算机上显示某些东西总是需要复制)。
一种解决方案是邀请人们进入他们可以在您控制的屏幕上查看图像的地方,而不是让他们拍摄任何照片。想想现代电影院,那些有夜景的安全人员会观看观众并拉出那些可能正在处理任何类似设备的摄像机的人。
答案 1 :(得分:2)
如果您想让它变得更加困难,请不要使用IMG标签。相反,使用具有属性“background-image”的CSS定义图像。为了使它更加棘手,请使用使用base64编码放置在页面上的JavaScript在运行时定义该属性。
答案 2 :(得分:1)
你可以试试这个......
onload=function(){
document.oncontextmenu=function(){return false;}
}
这将禁止上下文操作(鼠标右键单击)菜单...
如果用户知道他们正在做什么,他们可以解决这个问题。
答案 3 :(得分:1)
我建议不这样做。这很烦人,你实际上并没有保护自己。
如果必须,jQuery可以很容易地禁用右键菜单:
$(document).ready(function(){
$('img').bind("contextmenu",function(){
return false;
});
});
答案 4 :(得分:0)
只是让你的图像变得如此难看,没有人愿意接受它们。
说真的,你在担心什么?
答案 5 :(得分:0)
如果您为图像使用Microsoft Ajax Seadragon深度缩放查看器,那么您可以将图像呈现为大量重叠的图块 - 这是一种真正的痛苦,难以重新组合,难度取决于图像大小,但对于高分辨率图像, 'printscreen'是那些想偷东西的唯一选择。
顺便说一下,上下文对于div来说比图像(事物泡沫)更好,而且你不必因为没有点击整个文档而冒犯别人。
按类别进行,例如与原型:
$$('.your-image-container-class').each(function(s) {s.oncontextmenu=function(){return false;}});