フレームセット内のページの一つにクエリ文字列を渡す必要があった。PHPなど使えば簡単だが、JavaScriptで・・・、と思って書いたのがこれ。
(frameset.html)
<html>
<head>
<title>・・・</title>
<meta http-equiv="Content-Type" content="text/html; charset=x-sjis">
</head>
<frameset cols="*,160">
<frame src="frame1.html" name="f1" scrolling="no" frameborder="0">
<frame src="frame2.html" name="f2" scrolling="no" frameborder="0">
<noframes>
このページはフレーム対応のブラウザでご覧ください。
</noframes>
</frameset>
</html>
(frame1.html)
(略)
(frame2.html)
<html>
<head>
<title>・・・</title>
<meta http-equiv="Content-Type" content="text/html; charset=x-sjis">
・
・
・
(略)
・
・
・
<script type="text/javascript">
function window::onload()
{
if( top.location.search != "" && self.location.search == "" )
{
location.href = "frame2.html" + top.location.search;
return;
}
}
</script>
・
・
・
(略)
・
・
・
フレームセットに指定されたクエリ文字列が対象のページに指定されていなかったら、指定して再表示しているだけである。単純だが、これでPHPなど使用しなくても良くなる(ま、一旦表示されて再表示される形になるのでちょっとオーバーヘッドはあるかも知れないが・・・)。
ちなみに location.href = ・・・ としているが、location.replace()でも良いかも知れない。
テーマ:JavaScript - ジャンル:コンピュータ
|
| ホーム |
SHOJI's Code



