第79回 「フレームを操作する(フレームのURLを指定する、その2)」
今回は前回の続きでフレームのURLを指定する方法について説明します。
前回親フレームを指定するには
parent.フレーム名.〜
と指定すると書きました。このparentは親フレームを示しますが、フレーム内にさらにフレームがある場合には以下のようにparentを2つ列記します。
parent.parent.フレーム名.〜
実際のサンプルを見てみましょう。以下のサンプルで
●フレーム分割ファイル1
<html>
<head>
<title>Frame Sample</title>
<frameset cols="20%,*">
<frame src="left.html">
<frame src="index2.html" name="rPage">
</frameset>
</head>
</html>
●フレーム分割ファイル2
<html>
<head>
<title>Frame Sample</title>
<frameset cols="20%,*">
<frame src="left.html">
<frame src="right.html" name="rPage">
</frameset>
</head>
</html>
●left.html
<html>
<head>
<title>Sample</title>
<script language="JavaScript"><!--
function change()
{
parent.rPage.location.href = "right2.html";
}
// --></script>
</head>
<body>
■<a href="javascript:change()">クリックする</a>と右ページの内容が変わります。
</body>
</html>
フレーム分割ファイル1,2とも左ページは同じleft.htmlです。フレーム分割ファイル2にあるleft.htmlのリンクをクリックすると、その右側のページが入れ替わります。フレーム分割ファイル1で分割された左側のページのリンクをクリックすると右側のフレーム分割ページが、ごっそり入れ替わります。name属性で同じ名前を指定していてもparentで正しくフレームの場所を指定していれば目的のフレームを入れ替えることができます。
フレーム分割ファイル2で分割された左ページからフレーム分割ファイル2の右フレームを入れ替えるには最初に説明したparent.parent〜のように指定します。実際のサンプルは以下のようになります。
<html>
<head>
<title>Sample</title>
<script language="JavaScript"><!--
function change()
{
parent.parent.rPage.location.href = "right2.html";
}
// --></script>
</head>
<body>
■<a href="javascript:change()">クリックする</a>と右ページの内容が変わります。
</body>
</html>
フレームの場所を示すのにはparent以外にtopとselfがあります。selfは自分自身を示し、通常は省略できます。topはフレームの先頭を示します。フレームが何重にも入れ子になっていて、全てフレームを解除したい場合に使います。
次回は全フレームを解除する方法について説明します。