フレームは、iframesまたはフレームセットのいずれかのサブページを保存するために使用されます。ウィンドウオブジェクトはグローバルオブジェクトであり、ページ上のすべての機能とオブジェクトがその範囲内にあります。
1。親は親のウィンドウを表します。親ウィンドウにいくつかのネストの層がある場合、上部はトップレベルの親ウィンドウを表します。
自己はウィンドウ自体を表します。
if(self == top){//}ウィンドウが上位レベルにあるかどうかを判断するだけですif(self == parent){} //2.1。親ページには、子のページ要素にアクセスします。アイデアは、サブページのすべての要素がそのwindow.documentオブジェクトにあるということです。最初に入手してから、簡単に言うことができます。
最も便利な操作であるフレームの名前属性を設定するのが最善です。のように
<iframe name = "test" src = "child.html"> </iframe>
child.htmlでid 'menu'を使用して要素を取得したい場合は、次のように書くことができます。
window.frames ["test"]。document.getElementbyid( 'menu'); //すべての関数はウィンドウオブジェクトに保存されるため、開始ウィンドウを削除できます。 //ブラウザでは、フレームの名前属性はデフォルトでサブページのウィンドウオブジェクトと同等であるため、さらに省略できます。test.document.getelementbyid( 'menu');
2.2親ページチャイルドページの機能またはオブジェクトにアクセスします。サブページの関数とオブジェクトはウィンドウオブジェクトにあり、上記と同じです。キーはオブジェクトを取得することです。
// child.htmlがshowmesg関数を定義し、親に呼び出す必要がある場合、window.frames ['test']。showmesg()を書き込みます。 // ableviated form test.showmesg(); //同様に、オブジェクトはアラート(test.person)にもアクセスします。
2.3ドキュメントを取得する他の方法。
最初に 'document.getElementById()'または 'document.getElementsByTagname()を使用して、ドキュメントの下の要素としてフレームを取得し、その属性ContentDocument/ContentWindow(Iframe、Frame固有)にアクセスします。
<iframe id = "testid" src = "child.html"> </iframe> // ====== var doc = document.getElementById( 'testid'); //またはvar doc = document.getElementsByTagname( 'iframe')[0];次に、var winordoc = doc.contentdocument || doc.contentwindow; // 2つのif(winordoc.document)winordoc = winordoc.document; winordoc.getelementbyid( 'menu'); //ウィンドウオブジェクトが必要な場合は、次のように書きます。
3.1チャイルドページ親ページ要素にアクセスします。 2.1と同じアイデア、最初に親ウィンドウウィンドウを取得します。ドキュメントオブジェクト
parent.window.document.getElementbyid( 'parentmenu'); // abbreviation parent.document.getelementbyid( 'parentmenu');
3.2。チャイルドページは、親ページ関数またはオブジェクトにアクセスします。 2.2と同じアイデアは、最初に親のウィンドウオブジェクトを取得します。
parent.ParentFunction();
最後に、JSの同じオリジン戦略、つまり、ウェブサイトAにあるJSコードは、ウェブサイトBに由来する場合でも、WebサイトBにあるコンテンツへのアクセスを許可しません。