【发布时间】:2012-03-09 23:28:25
【问题描述】:
当人们尝试通过访问右键菜单和“将图像另存为”来下载图像时,是否可以在我的页面上显示没有水印的图像。让他们下载带有水印的图片?
【问题讨论】:
-
您可以使用 HTML5 画布来支持这一点...因为您可以设置不同的源数据。
标签: php jquery html css contextmenu
当人们尝试通过访问右键菜单和“将图像另存为”来下载图像时,是否可以在我的页面上显示没有水印的图像。让他们下载带有水印的图片?
【问题讨论】:
标签: php jquery html css contextmenu
显然,您可以检查在mousedown 事件处理程序中按下了哪个鼠标按钮,如果它是右键更改图像的来源:
$('img').on('mousedown', function (event) {
if (event.which == 3) {
this.src = this.src.replace('.jpg', '_watermark.jpg');
}
});
这是一个演示:http://jsfiddle.net/s6A9m/
【讨论】:
不,这是不可能的,因为您没有任何关于用户当前正在使用这些图像做什么的信息。但是,您可以将水印应用到图像的底部或顶部,然后在 html 中隐藏图像的一部分
【讨论】:
据我所知,您必须打破常规的 UX(用户体验)才能做到这一点。
这是搜索的第一个搜索结果:“jQuery 上下文菜单”
http://labs.abeautifulsite.net/archived/jquery-contextMenu/demo/
click 事件到达图像的透明元素来取消用户右键单击图像的能力。然后为用户提供一个清晰标记的链接以下载图片(当然,您只需将用户引导至带水印的图片即可)。这里是这个方法的一个演示:http://jsfiddle.net/xAjDp/
HTML --
<div class="container">
<div class="overlay"></div>
<img src="[src]" />
</div>
<a href="[src]">Download Image</a>
CSS --
.container {
position : relative;
display : inline-block;
/*IE7&6 Compatibility*/
*display : inline;
zoom : 1;
_height : 366px;
}
.container .overlay {
position : absolute;
top : 0;
left : 0;
width : 100%;
height : 100%;
background : #000;
opacity : 0;
filter : alpha(opacity=0);
zoom : 1;/*give the element "hasLayout"*/
}
【讨论】: