3

编辑:作为对许多评论的回应,我确实知道没有可靠的方法来完全保护图像不被下载。这种方法是为了防止普通用户通过简单的右键单击下载。最好的方法可能是简单地对您的图像进行版权保护,如果您非常担心,可以使用 Digimarc 之类的服务对您的图像进行数字水印。现在的问题:

我遇到了一个网站,它在他们的实际图像上使用 GIF 覆盖,因此它可以保护图像免受用户右键单击和下载图像的影响(尽管您仍然可以从代码中获取实际图像)。他们用来执行此操作的代码是:

<div><img src="-Transparent GIF File-" alt="" width="530" height="558" 
border="0" original="-Actual Image Displayed-" /></div>

我的问题是original标签不是真正的标签,它被某种 Javascript 使用和翻译。我想在我的网站上复制它。有人可以帮我找到这个脚本吗?

4

4 回答 4

6

这是没有意义的。如果浏览器显示图像,则可以拍摄。任何防止这种情况的尝试都只是可以很容易地规避的站点开销。

你最好的保护是在图像本身上贴上版权声明。

无论如何,如果您真的想交换original属性,您可以...

$(function() {
var o = $('img').attr('original');
$('img').attr('src', o);
});

演示在这里

但是......这并不能阻止用户选择和保存与 ehoriginal属性相关的图像。

于 2012-01-02T05:41:20.523 回答
3

对于您要完成的工作,一个更简单的解决方案是将所有这些属性添加到 img 标签:

ondrag="return false"
ondragstart="return false"
oncontextmenu="return false"
galleryimg="no"
onmousedown="return false"

此外,要选择性地使图像打印更小,请将其添加到 img 标签:

class="imgPrint"

并包括这个相关的 CSS:

@media print
{
    .imgPrint
    {
        width: 40%;
    }
}
于 2012-02-28T19:51:56.263 回答
2

您也可以在没有原始标签的情况下执行此操作:

http://rainbow.arch.scriptmania.com/scripts/no_right_click.html

看到这个链接。

我想这就是你想要的,这个链接可能会对你有所帮助。

于 2012-01-02T05:24:32.760 回答
1

这是我对图像进行光保护的实现。

它将在图像(或文本)上创建一个透明的封面 DOM 元素。如果您禁用 javascript,图像将被隐藏,如果您移除封面,图像将在鼠标悬停时隐藏。右键单击图像也被禁用。

您可以随时打印屏幕,从下载的资源中抓取等。这只会过滤最基本的下载方式。但是为了更方便的保护,您必须隐藏图像路径并渲染到画布对象。

您可以改进这一点,但总有一种方法可以获取图像。

在主要浏览器上测试并正常工作!

HTML

<div class="covered">
    <img src="image.jpg" alt="" />
</div>

JAVASCRIPT + JQUERY

$('.covered').each( function () {

    $(this).append('<cover></cover>');
    $(this).mousedown(function(e){ 
        if( e.button == 2 ) { 
            e.preventDefault();

          return false; 
        } 
        return true;
    });

    $('img', this).css('display', 'block');

    $(this).hover(function(){
        var el = $('cover', this);
        if (el.length <= 0) { 
            $(this).html('');
        }
    });
});

CSS

cover
{
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
}

.covered
{
    position: relative;
}

.covered img
{
    display: none;
}
于 2015-11-20T17:07:00.263 回答