ホームページ >ウェブフロントエンド >jsチュートリアル >Web ページが iframe フレームと複数の location.href 間の違いによってネストされるのを防ぐための js

Web ページが iframe フレームと複数の location.href 間の違いによってネストされるのを防ぐための js

高洛峰
高洛峰オリジナル
2017-01-12 10:58:341607ブラウズ

まず第一に、window.location.href、location.href、self.location.href、parent.location.href、top.location.href の違いと関係を理解し​​ましょう。簡単に言うと、いくつかの場所の違いです。 hrefs.jsはiframeでフレーム化されたWebページの機能を実現します
「window.location.href」「location.href」「self.location.href」はこのページへのジャンプです
「parent.location.href」は前のページへのジャンプ
"top.location.href" は最も外側のページ ジャンプです

例 (上に示したように):
A、B、C、および D がすべて通常のページの場合、D は C の iframe です, そして、CはBのiframe、BはAのiframe、
Dのjsが次のように書かれているとします:
"window.location.href", "location.href": D page Jump
"parent. location.href": C ページジャンプ
" top.location.href": ページ A ジャンプ

ページ D にフォームがある場合:
ff9c23ada1bcecdd1a0fb5d5a0f18437: フォーム送信後にページ D にジャンプ
fface211518de1a29db5ddfe6dfb5fa8: フォームの送信後にポップアップします 新しいページ
b871a3f0962c693cfc4d01f7ce2e377b: フォームの送信後にページ C にジャンプします
cc081d24aa3ae9245f597eac35a8f260フォームが送信された後にジャンプします

ページの更新について、ページ D は次のようになります:
"parent.location.reload();": C ページの更新 (もちろん、子ウィンドウのオープナー オブジェクトを使用して親ウィンドウのオブジェクトを取得します: window.opener.document.location.reload(); )
" top.location.reload();": ページの更新

今振り返ると、js の実装は非常に簡単です。 Web ページが iframe によってフレーム化されるのを防ぐ機能。 content.html ファイルが Frame.html ファイル内でフレーム化されていると仮定すると、考え方は次のようになります。content.html に js を追加して、独自の top.location.href アドレスと、それが top.location.href アドレスであるかどうかを検出します。入れ子になっている場合は、入れ子になっていません。ヒントを提供します。

<script language="javascript"> 
if(top.location!==self.location){ 
WarningTxt1 = "content页面被iframe了!"; 
WarningTxt2 = "我们跳出iframe,直接访问content页面吧!"; 
alert(WarningTxt1); 
alert(WarningTxt2); 
top.location.href=self.location.href; 
} 
</script>

Web ページが iframe フレームによってネストされるのを防ぐための js 実装と、いくつかの location.href 関連記事の違いについては、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。