0

我正在尝试帮助我的一个朋友打破他的网站摆脱一些讨厌的框架: example。这通常不会是一个问题,但这个特定的网站通过在页面顶部放置一个不付钱给我朋友的广告跨越了一些道德界限。

这就是复杂的地方,他希望他的网站在某些网站(如netvibes )的框架中。

所以,我尝试了这样的事情:

<!-- start break from getweb.info -->
<script type="text/javascript">

    purl = parent.location.href;
    //alert(purl);
    if(purl.indexOf('getweb') > 0 && top.frames.length!=0)
    {
        top.location=self.document.location;
    }
</script>
<!-- end break from getweb.info -->

但是,因为它需要有条件的中断,所以这不起作用,因为 firefox.(假设其他人也有相同的错误,尚未测试)给出了一个错误,指出框架中的站点不允许获取 location.href父框架的属性。

JavaScript 有没有办法根据父框架的位置跳出框架?

4

1 回答 1

2

您遇到了相同的来源策略。您看不到具有不同源域的框架的位置(或任何其他属性)。

但是,您可以查看自己的document.referrer. 如果您被陷害,那么引用者应该是包含框架的 URL。

if (window.self != window.top && document.referrer.indexOf('getweb') > 0 ) {
  top.location.replace(window.location.pathname);
}

这不是防弹的。例如,框架站点可以使用中介(如 netvibes)。然而,他们停止构筑您朋友的网站可能会很烦人。

于 2009-05-18T23:07:05.017 回答