プロが教える店舗&オフィスのセキュリティ対策術

前回プルダウンメニューによる左右フレーム切り替えの質問をさせていただきました。
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つ目のプルダウンの設置となると、
どこをどうしたらよいやらわかりません。

是非ご回答よろしくお願いいたします。

A 回答 (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属性も変えましたが…)
こうしておけば、プルダウンをいくつ増やしても対応できます。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
完璧です…感謝感激です。

しかしプルダウンの幅というのは、
文字数によって、変わってしまうのですね。
これをあわせることができますか?

新規で質問した方が良さそうですね^^;

今回は大変お世話になり感謝しています。

お礼日時:2005/02/07 13:33

こんにちは。


フレーム分割自体余りお勧めできませんが・・・。

こちらのフレーム編、
参考にしてみてください。
関数受け渡しは
parent・フレーム名・関数名
の様にフレーム名が必要になります。

参考URL:http://www.openspc2.org/reibun/javascript/#10
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/02/07 13:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!