• ベストアンサー

フレームの幅を変更したい

左にメニュー、右にメインと2つのフレームに分かれた ページを作成しています。フレーム幅は可変になっています。 メニューの1つをクリックすると右のメインフレームは切り替わらず 左のメニューのフレームが切り替わり、1つ下層のサブメニューを表示させています。 メインメニューからサブメニューにジャンプしたとき、 左フレームの幅を自動的に広げたいのですが、方法はあるでしょうか。 それとも全体のフレームセットを切り替えるしかないでしょうか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tenro-
  • ベストアンサー率32% (23/70)
回答No.2

IE限定でよろしければ、次のようなこともできますよ。 ちゃんと設計しないと、わやくちゃになりますが。 IE6で確認。NN6、Operaでは動作せず。 あるプロダクトでは、これを利用して、wait画面を 実現しておりました。 ----------------------------- main.htm <html> <head><title></title></head> <frameset cols="50%,*" name="fr"> <frame name="left" src="l.htm" scrolling="auto" target="main"> <frame name="right" src="http://www.yahoo.co.jp" scrolling="auto"> </frameset> </html> ----------------------------- l.htm <html> <head><title></title> <script> function wide() { var fs = parent.parent.window.document.all["fr"]; fs.cols = "80%,*"; } function narrow() { var fs = parent.parent.window.document.all["fr"]; fs.cols = "10%,*"; } </script> </head> <body><form> <input type="button" value="こちらを広く" onClick="wide()"><br> <input type="button" value="こちらを狭く" onClick="narrow()"> </form></body></html>

その他の回答 (2)

回答No.3

フレームページからフレームページへのジャンプと言う手はどうですか? これならどんなフレーム対応ブラウザでも出来そうな気がするんですけど・・・。

noname#2605
noname#2605
回答No.1

ジャンプ時にフレームの幅を変える。ということは少なくともHTMLの領域では無理だと思います。方法があるとすれば、 まず、サブメニューが左にくるフレームを作ります。 (ファイル仮名:sub_menu.html) そして、最初のメニューからジャンプする際のターゲット指定を TARGET="_top" とすると、 例:<A HREF="sub_menu.html" TARGET="_top"> 左右分けのフレームが解除されつつ、sub_menu.htmlにジャンプするので、あたかもフレームの幅が変わったかのように見せることができます。 ちなみにTARGET="_top"というのはフレームを解除して画面いっぱいにページを表示させるターゲット指定です。(<A HREF="" TARGET="_top">←こんな感じで利用します。)他にも <A HREF="" TARGET="_blank">(新しい別窓が開きます) などいろいろあるので使い分けるとHPがより見やすくなると思います。 説明不十分かもしれないのでわからないところは聞いてくださいね。

関連するQ&A