フレーム間の相互参照
ページ内のすべてのフレームは、ウィンドウ オブジェクトの属性としてコレクションの形式で提供されます。たとえば、window.frames はページ内のすべてのフレームのコレクションを表します。 form オブジェクト、link オブジェクト、picture オブジェクトなどと同じですが、違いは、これらのコレクションがドキュメントの属性であることです。したがって、サブフレームを参照するには、次の構文を使用できます:
window.frames["frameName"];
window.frames.frameName
window.frames[index]
このうち、window という単語も self に置き換えたり省略したりすることができます。frameName がページ内の最初のフレームであるとすると、以下の記述方法は同等です。
self.frames["frameName"]
self .frames[0]
frames[0]
frameName
各フレームは HTML ページに対応するため、このフレームは独立したブラウザ ウィンドウでもあり、フレームへのいわゆる参照はウィンドウ オブジェクトへの参照でもあります。この window オブジェクトを使用すると、window.document オブジェクトを使用してページにデータを書き込んだり、window.location プロパティを使用してフレーム内のページを変更したりするなど、その中のページを簡単に操作できます。
以下では、異なるレベルのフレームワーク間の相互参照を紹介します。
1.親フレームから子フレームへの参照
上記の原則を知っていると、親フレームから子フレームを参照することは非常に簡単です。つまり、
window.frames["frameName"];
これは、ページ内のframeNameという名前のサブフレームを参照します。サブフレーム内のサブフレームを参照したい場合は、参照されるフレーム (実際にはウィンドウ オブジェクト) の性質に従って、次のように実装できます。
window.frames["frameName"].frames["frameName2"];
このようにして、第 2 レベルのサブフレームが参照されるなど、多層フレームワークの参照が実現されます。
2.子フレームから親フレームへの参照
各ウィンドウオブジェクトには、親フレームを表すparent属性があります。フレームがすでにトップレベルのフレームである場合、window.parent はフレーム自体も表します。
3.兄弟フレーム間の参照
2 つのフレームが同じフレームのサブフレームである場合、それらは兄弟フレームと呼ばれ、親フレームを通じて相互に参照できます。たとえば、ページには 2 つのサブフレームが含まれます: