我们有一个拥有灯箱图片的网站,但客户端不想透露浏览器状态栏中显示的img src ...
任何明智的想法我们如何能够始终如一地为所有浏览器实现这一目标?
我想补充一点,这是一个网站,我们有一个缩略图链接(一个href =“”)到另一个更大的图像,其链接显示在客户主要关注的状态栏中。
我们还尝试使用我们正在使用的CMS选项,它允许我们对图像使用混淆时间限制的URL,这看起来很棒,但是加载时间严重减慢到不可接受的程度。
答案 0 :(得分:1)
网页本身是否支持任何形式的身份验证?
如果是这样,那么正确的方法是将图像从公共根中取出并通过验证脚本运行访问。我认为Devot:ee为ExpressionEngine提供了几个这样的工具。或者,一个简单的插件可以采用私有路径,检查登录成员,然后提供图像。
如果页面上没有身份验证,那么严酷的事实就是你在浪费时间,我感到痛苦!如果是这种情况,我不会放弃“教育客户”路线,好像图像真的很敏感,那么他们需要适当的保护。
另外,您可能还想考虑discouraging hotlinking。
答案 1 :(得分:0)
您可以使用模态对话框。不完全弹出,但它会打开另一个容器。像叠加层一样。你看到人们用图像做了很多,但你也可以用它来做html。 jquery有很多插件。
其中一个有一些例子:http://jquery.com/demo/thickbox/
我个人喜欢http://fancybox.net/
唯一的问题是你不能使用ajax来调用另一个网站,但你可以在php或其他任何地方创建一个页面并获取另一个页面的内容然后在ajax中返回。
你会想要使用像curl这样的东西。
答案 2 :(得分:0)
如果要在浏览器中显示图像,浏览器必须知道该图像的位置。因此,用户始终可以看到该图像的URL。无法将其隐藏起来。
虽然您可以从状态栏中隐藏它,但是什么阻止用户右键单击图像并说“在新标签页中打开图像”(或等效文件)。如果您要“禁用右键单击”(这不是所有意图和目的),您可以通过开发工具(如Firebug等)轻松查看图像URL。
所以,虽然你可能会稍微伪装一下这个网址,但没有什么可以阻止那些真正想要找到它的人。
答案 3 :(得分:0)
不确定目标是什么......但要回答你的问题,只需将图像写为base64编码的字符串。例子比比皆是:http://en.wikipedia.org/wiki/Data_URI_scheme#Examples。因此,可能会模糊图像所在的位置,实际上只要您在服务器上写入数据字符串,它甚至不必向外可访问。
答案 4 :(得分:0)
我会创建一个脚本,该脚本在数据属性中包含图像的位置,并在点击时绑定一个事件,手动触发灯箱,并使用该数据属性中的位置。
答案 5 :(得分:0)
我认为最好的解决方案可能是对页面中的图像路径进行编码(例如使用base64),然后有一个中间的独立PHP脚本,它接收编码的文件路径并将原始图像作为字符串返回到飞。
显然,如果您只是直接提供图像,则会产生更大的开销,但这会阻止用户知道真实的文件位置或名称。
这样的事情:
Hide download file location. - Redirect download
可能是一个很好的起点。
:)