0

私は私の友人が彼のサ​​イトをいくつかの厄介なフレームから切り離すのを手伝おうとしています: 。これは通常問題にはなりませんが、この特定のサイトは、私の友人にお金を払っていない広告をページの上部に配置することによって、いくつかの倫理的な境界を越えています。

ここが複雑になるところです。彼は自分のサイトを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 に答える