• ベストアンサー

複数のプルダウンメニューの設置(左右フレーム)

前回プルダウンメニューによる左右フレーム切り替えの質問をさせていただきました。 →http://oshiete1.goo.ne.jp/kotaeru.php3?q=1200405 申し訳ないですが、ここからまた新たに質問させてください。 上部(固定)、左フレーム(プルダウン設置)、右フレーム(メインページ)というページを作っています。 現在の状況はローカルのフォルダの中に ○上フレーム:flame1.htm(完成) ○左フレーム:flame2.htm(←ここに設置したい) ○右メインページ:1.htm 2.htm 3.htm(←1つ目プルダウン)4.htm 5.htm 6.htm(←2つ目のプルダウン) 7.htm 8.htm 9.htm(←3つ目のプルダウン)  と入っている感じです。 <HEAD>~<HEAD>部分 <script language="JavaScript"><!-- function myGo(){ mySelect = document.myForm.myMenu.selectedIndex; parent.main.location.href = document.myForm.myMenu.options[mySelect].value; } // --></script> <BODY>~<BODY>部分 <form name="myForm"> <select name="myMenu" onChange="myGo()"> <option value="1.htm" >第1章 <option value="2.htm" >第2章 <option value="3.htm" >第3章 </select> </form> ↑上記でひとつのプルダウンは設置できるのですが、 2つ目、3つ目のプルダウンの設置となると、 どこをどうしたらよいやらわかりません。 是非ご回答よろしくお願いいたします。

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

  • ベストアンサー
  • osumitan
  • ベストアンサー率33% (102/307)
回答No.2

myGoの中で見るプルダウンが、myMenuに限定されているからでしょう。 プルダウンは3つ作ったとしても、それを選択して呼ばれる処理は まったく同じなので、プルダウン自身を関数に渡すのがいいでしょう。 ---------- <html> <head> <script kanguage=Javascript"> <!-- function myGo(myPullDown) {   var mySelect = myPullDown.selectedIndex;   parent.main.location.href = myPullDown.options[mySelect].value; } //--> </script> <body> <form name="myForm"> <select name="myMenu1" onChange="myGo(this)"> <option value="1.htm">第1章 <option value="2.htm">第2章 <option value="3.htm">第3章 </select> <br> <select name="myMenu2" onChange="myGo(this)"> <option value="4.htm">第4章 <option value="5.htm">第5章 <option value="6.htm">第6章 </select> <br> <select name="myMenu3" onChange="myGo(this)"> <option value="7.htm">第7章 <option value="8.htm">第8章 <option value="9.htm">第9章 </select> </form> </body> </html> ---------- ちがうところは、プルダウン側のonChangeで関数を呼ぶときに this(プルダウン自身を指す)を引数として渡していることと、 関数myGo側で、document.myForm.myMenuに対してやっていた処理を 引数で渡したプルダウンに対してやっていることです。 (プルダウンのname属性も変えましたが…) こうしておけば、プルダウンをいくつ増やしても対応できます。

funfun31
質問者

お礼

早速の回答ありがとうございます。 完璧です…感謝感激です。 しかしプルダウンの幅というのは、 文字数によって、変わってしまうのですね。 これをあわせることができますか? 新規で質問した方が良さそうですね^^; 今回は大変お世話になり感謝しています。

その他の回答 (1)

  • kaiu
  • ベストアンサー率20% (65/315)
回答No.1

こんにちは。 フレーム分割自体余りお勧めできませんが・・・。 こちらのフレーム編、 参考にしてみてください。 関数受け渡しは parent・フレーム名・関数名 の様にフレーム名が必要になります。

参考URL:
http://www.openspc2.org/reibun/javascript/#10
funfun31
質問者

お礼

早速の回答ありがとうございました。 参考のリンク大変参考になりました。 私自身まだまだフレームについて大変未熟な部分が わかりました。

関連するQ&A

専門家に質問してみよう