dポイントプレゼントキャンペーン実施中!

javascriptを使用したプルダウンメニューについて質問です。

<form name="form1">
<select name="select" onChange="location=select.options[select.selectedIndex].value">
<option value="a.html#01">A01</option>
<option value="a.html#02">A02</option>
<option value="a.html#03">A03</option>
<option>---------------</option>
<option value="b.html#01">B01</option>
<option value="b.html#02">B02</option>
<option>---------------</option>
</select>
</form>

2つのページ(a.html、b.html)上部に上記のようなプルダウンメニューを置き、それぞれ相互に行き来できるようにしました。
一応正常に動くのですが、たとえばa.htmlのプルダウンで『B01』を選択してリンク先b.htmlに飛ぶと、プルダウンの選択項目が一番上の『A01』に戻ってしまっています。
b.htmlに飛んだ後も『B01』選択の状態で残したいのですが。
どのようにすればよいのでしょうか・・・

よろしくお願い致します。

A 回答 (3件)

あまり綺麗には書けてませんが、取りあえずは動くとおもいます・・



<html>
<head>
<script>
function start(){
x=location.hash;
if(x!=""){
y=form1.select1.options;
for(i=0;i<y.length;i++){
z=y[i].value.indexOf(x,0)
if(z!=-1){
form1.select1.options[i].selected=true;
}
}
}
}
</script>
</head>
<body onload="start()">
<form name="form1">
<select name="select1" onchange="location.href=this.options[this.selectedIndex].value">
<option value="a.html#A01">A01</option>
<option value="a.html#A02">A02</option>
<option value="a.html#A03">A03</option>
<option value="b.html#B01">B01</option>
<option value="b.html#B02">B02</option>
<option value="b.html#B03">B03</option>
</select>
</form>
<!--b.htmlでは以下のid属性の値をid="B01"などに変更する -->
<p id="A01">A01</p>
<p id="A02">A02</p>
<p id="A03">A03</p>
</body>
</html>
    • good
    • 0
この回答へのお礼

早速試してみたところ、動きました!すごいです!
No.1、No.2お二方の回答を参考に色々がんばってはみたのですが
全く出来ず困り果てていました。
本当にありがとうございます。
これからじっくり解析していきたいと思います。

お礼日時:2006/01/20 14:38

考え方だけ書きます。



まず、指定されたアンカーはwindow.location.hashで取得できます。
例えば、b.html#01に飛んだ場合、b.html側では"#01"という文字列が取得できます。
そこで、bodyか何かのonLoadイベントで指定されたアンカーをチェックして、
その内容に応じてselectのvalueかselectedIndexを指定します。

試してないので自信は無いのですが、多分この方法でできると思います。
    • good
    • 0
この回答へのお礼

考え方だけでも非常に参考になりました。
どうすべきなのか全くわからない状態でしたので・・・
(しかし、書けません。。)

ありがとうございました。勉強になりました。

お礼日時:2006/01/20 14:34

JavaScriptだけだと、けっこうややこしいですね。


参考URLを参考にやればできそうです。

サンプルを作ろうと思ったのですが、時間がかかりそうなので割愛しました。
あとはやってみてください。

参考URL:http://homepage2.nifty.com/BASH/WWW/JavaScript/q …
    • good
    • 0
この回答へのお礼

Javascriptだけでコレは面倒なものだったのですね。
参考URLを拝見して、なんとなくわかりかけたのですが・・・・わからなかったです。。
でも考え方の参考になったというか、非常に勉強になりました。
ありがとうございました。

お礼日時:2006/01/20 14:32

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