破解防iframe

A网站框住了B网站

<iframe src="http://yourwebsite.com"></iframe>

B网站防止被框,加入如下代码(变种有很多,意思相同)

if (top != self) { top.location.replace(self.location.href); }

A网站破解方法如下:

  • 这种方法是在网上搜到的大多数解决方法,但是仅支持IE

    var location = ""
    //或者
    var location = document.location

  • 在stackoverflow上找到的一个另一种方法,暂时发现仅不支持opera浏览器

简单介绍一下原理,B网站改变top.location的行为会触发window.onbeforeunload事件A网站捕获到以后,将location指向一个“204页面“

但是这样导致了另外一个问题,你会发现A页面所有链接都失效了,你可以做如下改动prevent_bust -= 3,一切OK了。

但是你仍然要注意,这种方法仅在B网站加入了如上防被框代码才有效,如果B去掉了这段代码,你也要做相应的改动。这并不是一劳永逸的方法。

很遗憾,正如你看到的那样,没有什么完美的方法。

by Jungledrum