少し複雑なので文章で説明できるといいのですが・・・
まずTOPページがあります。
次にフレームで上下に分割したメニューページ「A」があります。
「A」の上部分はメニュー項目なので固定です。
下部分は「B」「C」と色々変わっていきます。
通常「A」→「B」にリンクする時は、ターゲットで指定してあげると
ちゃんとフレームの上部分も付いてきますよね?
問題は、TOPページ→「B」にリンクしたときは、当然ながら上部分のフレームは外れてしまいます。
この場合の解決策は、すべての「B」「C」にフレームを付けるというので解決できますが、これが膨大な量なのです。
この場合、JAVAスクリプトでもなんでもかまいませんが、上部分のフレームを引っ張りこめる方法を教えて下さい。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
フレームにする場合は、例えば、上下2つに分けるのであれば、全体構成を決めるファイル(index.htmlとします)、上の部分(index1.htmlとします)、下の部分(index2.html)の3つのファイルで構成します。
しかし、そのindex.htmlを呼ばずに、index1.htmlまたはindex2.htmlだけを使えば、フレームにならないのは当然ですね。
ですから、最近の流行としてはフレームを作らずに、ヘッダーとしてあつかうのが流行っています。
つまり、index2.htmlに相当するファイルだけにして、その中にindex1.htmlの部分も書いてしまいます。
そして、そのindex1.htmlに相当する部分をJavaScriptで外出しファイルにしておくのが一般的なやりかたです。
この回答への補足
大変、興味深いアドバイスです。
もっと詳しく教えていただけるとありがたいです。
特にJavaスクリプトについては、ソースや参考URLを教えて頂けるとうれしいです。
No.2
- 回答日時:
質問の意味がいまいち把握しきれていないのですが、
TOPページから「A」のようなフレーム用のページ「Z」へリンクさせて、「Z」の中にあるフレームへ「B」や「C」を読み込むという風ではだめなんでしょうか?
フレームは多重にかけることも可能ですから間に一つフレーム用のページをはさんでみてはいかがでしょうか?
No.4
- 回答日時:
はい(⌒ ⌒)No.1のものです。
追加質問を頂きましたので・・・
例えば、上のフレームでは、メニューとして、いくつかのリンクがあり、それをどのページにも出したいので、フレームにして、固定しているんですよね?
「旅行」「遊び」「食事」の3つのリンクがあるとします。
すべてのHTMLファイルの<head>と</head>の間に次のように書きます。
<script language="javascript" src="header.js"></script>
そして、「header.js」は次のようにします。
<!--
document.write(<table border=0 width=100% bgcolor=silver>);}
document.write(<tr>);}
document.write(<td>);}
document.write(<table border=0>);}
document.write(<tr>);}
document.write(<td><a href="ryokou.html">|旅行|</a></td>);}
document.write(<td><a href="asobi.html">遊び|</a></td>);}
document.write(<td><a href="syokuji.html">食事|</a></td>);}
document.write(</tr>);}
document.write(</table>);}
document.write(</td>);}
document.write(</tr>);}
document.write(</table>);}
// -->
これで、すべてのHTMLファイルには同じヘッダーが入ります。
メニューが増えたり、変更になった時は「header.js」だけを変えれば、すべてのHTMLファイルのヘッダーが同時に変わります。
これは基本形なので、あとは、ロゴやサイト名を追加するなどの工夫をしてください。
これでいいでしょうか?
この回答への補足
ありがとうございます。
しかし、上記の方法はスマートではないですね w
一つ一つをタグを挿入しないといけいない。
色々と勉強した結果
下記のスクリプトで動くことがわかりました。
トップページを、「100%,*」のフレームにします。そしてこのトップページに、フレームを生成するJavaScriptの関数を書いておきます。
---- index.html (抜粋)
<SCRIPT language="JavaScript">
function openFrame( url ) {
with ( frames['top_main'] ) {
document.open();
document.write( '<FRAMESET rows="100,*"><FRAME src="メニューのURL"><FRAME name="main" src="' + url + '"></FRAMESET>' );
document.close();
}
}
</SCRIPT>
<FRAMESET cols="100%,*">
<FRAME src="トップページのURL" name="top_main">
<FRAME src="test1.html">
</FRAMESET>
---- ここまで
そしてトップページ(仮にtoppage.htmlとしておきます)には、
---- toppage.html (抜粋)
<A href="javascript:parent.openFrame( 'ページ1のURL' );">ページ1へ</A>
---- ここまで
また新しいウィンドウで開きたかったので
下記のようになりました
<SCRIPT language="JavaScript">
function openFrame( url ) {
var swin = window.open( '', 'subWin' );
swin.focus();
with ( swin ) {
document.open();
document.write( '<FRAMESET rows="100,*"><FRAME src="メニューのURL"><FRAME name="main" src="' + url + '"></FRAMESET>' );
document.close();
}
}
</SCRIPT>
<A href="javascript:openFrame( '1ページ目のURL' )">1ページ目へ</A>
ネスケでは確認していませんが、IEでは無事に動いてくれます。
アドバイスを頂いた皆様に感謝します
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript スマホ上で、左右スワイプで次のページに移動させたいです 2 2022/11/11 17:04
- 画像編集・動画編集・音楽編集 動画をディスク作成すると画像が乱れる。 4 2022/06/24 07:49
- カスタマイズ(バイク) リアボックス取り付け 2 2023/08/11 08:07
- C言語・C++・C# 【C++】IDirect3DSurfaceのディープコピーは可能ですか? 1 2022/07/06 02:47
- メガネ・コンタクト・視力矯正 軽量メガネについて質問です。 私は鼻パッドが苦手で、鼻に当たる部分のフレームが少し盛り上がっている( 5 2022/06/01 08:22
- カスタマイズ(バイク) リアボックス取り付け位置 2 2023/08/11 06:08
- 化学 強酸性でも錆びないメガネを教えて。 4 2022/07/17 19:50
- 家具・インテリア ダブルのベッドにクイーンのマットレス 5 2023/02/11 08:35
- カスタマイズ(バイク) カスタマイズ 1 2022/11/12 01:09
- カスタマイズ(車) 違法改造車の通報方法について 4 2022/06/30 08:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WebサイトでHTMLのフォームに隠...
-
スクロールできない
-
CSSによるFrameの代替方法
-
pythonのエラーについての質問...
-
フレーム別に更新
-
html 左メニューから右への表示...
-
フレームページで表を表示させ...
-
フレームが表示できません
-
フレームなしのページからフレ...
-
フレーム分割しているページで...
-
フレームの片方だけを更新(リロ...
-
フレームページが表示されない...
-
2つのページを重ねたい
-
ホームページでファイルをダウ...
-
<!DOCTYPE html>あってますか?...
-
<!DOCTYPE html>あってますか?...
-
HTMLからフォルダを開きたい
-
form action="#"
-
iPadの標準ブラウザでローカルH...
-
<!DOCTYPE html>あってますか?↑
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
どのページもすべて同じURLなの...
-
フレーム内のPHPへPOSTで情報を...
-
pythonのエラーについての質問...
-
2つのページを重ねたい
-
フレームの片方だけを更新(リロ...
-
html 左メニューから右への表示...
-
URLを変えないで表示する方法
-
フレームページが表示されない...
-
スクロールできない
-
フレームで指定している送信先...
-
フレームが表示されない><
-
html リンクを別フレームに表...
-
ブラウザで4分割表示できますか?
-
直リンクとは。
-
frameの内容が表示されない
-
HTMLファイルの置き方による読...
-
CSSを使って画像をクリックする...
-
フレーム分割した全体をスクロ...
-
フレームの表示と非表示の切り替え
-
HPの一部に他のHPを表示
おすすめ情報