一度だけリロードさせる
動作ブラウザ:[NN2][NN3][NN4][IE3][IE4][IE5]



 一度だけリロードさせます。普通にlocation.reload()を使うと永久にページをリロード(再読み込み)してしまうため見えないフレームを作成し、そこにあるフォームエレメントにフラグを書き込んでおきます。最初にページが読み込まれた場合はfalseにしておき、リロードするためのスクリプトが呼び出されたらフォームエレメントの値を調べます。falseならば一度もリロードされていないという事ですからlocation.reload()でリロードさせ、フォームエレメントにtrueを書き込みます。二度目はすでにtrueが書き込まれているためリロードは発生しません。
 本当は隠しフレームのページが完全に読み込まれてからでないとエラーが発生してしまう場合がありますが、このような場合は一定時間経過後にリロードさせるか、隠しフレーム側でメイン側の変数のフラグを設定するなどの方法を使うことができます。



■ソースリスト(フレーム分割部分)
<HTML>
<HEAD>
<TITLE>frame</TITLE>
<FRAMESET ROWS="100%,*">
<FRAME SRC="reload.htm">
<FRAME SRC="data.htm" NAME="DATA">
</FRAMESET>
</HEAD>
<BODY bgColor="#FFffFF">
</BODY>
</HTML>

■ソースリスト(リロード側)
<HTML>
<HEAD>
<TITLE>一度だけリロードさせる</TITLE>
<SCRIPT Language="JavaScript">
<!--
function reloadFunc()
{
OBJ = parent.DATA.document.myFORM.FLAG;
if (OBJ.value == 'false')
{
location.reload();
OBJ.value = 'true';
}
}
// -->
</SCRIPT>
</HEAD>
<BODY bgColor="white" onLoad="reloadFunc()">
内 容
</BODY>
</HTML>

■ソースリスト(隠しフォーム側)
<HTML>
<HEAD>
<TITLE>一度だけリロードさせる</TITLE>
</HEAD>
<BODY bgColor="white">
<FORM NAME="myFORM">
<INPUT TYPE="hidden" VALUE="false" NAME="FLAG">
</FORM>
</BODY>
</HTML>