导航

« 口才在C#中,前面不足位数要补零的Tips »

破解使用做了防盗的图片

还在为不能在网页中引用那些做了防盗链的图片发愁吗?
下面让我们使用一个简单的方法就能搞定。
首先我们都明白,所谓防盗的原理也就是判断图片引用来源。所以,只要我们在这上面做文章就行了
实现思路,使用<Iframe>标签替代<IMG>标签,<Iframe>的src指向空白页“about:blank”,然后用脚本创建一个IMG对象,IMG对象的src属性指向原始图片路径,最后把IMG追加到<Iframe>的document内,并隐藏原始图片既可,这样服务器再取到的图片引用路就是空,也就可以显示图片了
我把代码做成了htc文件(htc只支持IE,其它浏览器各位可按此思路处理)
把下面代码Copy到RemotingImage.htc内:
<script language="javascript">
if(element.src.toLowerCase().indexOf("sina.com.cn") > -1)
{
    var link = null;
    if (element.parentElement.tagName.toUpperCase() == "A")
    {
        link = element.parentElement.href;
    }
    var id = "x_" + Math.random().toString().replace(".", "");
    var src = element.src + "?txyule.cn";
    element.outerHTML = "<iframe src='about:blank' name='"+ id +"' style='width:1px;height:1px'></iframe>"
    var doc = window[id].document;
    var img = doc.createElement("IMG");
    img.src = src;
    img.parentWindow = id;
    img.onload = function()
    {
        //window.status = (this.src + "[" + this.width + ":" + this.height + "]");
        var win = window.document.getElementById(this.parentWindow);
        win.style.width = this.width;
        win.style.height = this.height;
    }
    if (link == null)
    {
        doc.appendChild(img);
    }
    else
    {
        img.border = 0;
        var a = doc.createElement("A");
        a.href = link;
        a.target = "_blank";
        a.appendChild(img);
        doc.appendChild(a);
    }
}
</script>

在HTML页面内为IMG定义样式时加上:img{behavior:url(/RemotingImage.htc)}
这相示例是我处理新浪图片时做的
哈,搞定,就是这么简单。。。
  • 相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.7 Laputa Build 70216

Copyright 2005-2008 Ezone.NET. Some Rights Reserved.