プルダウンメニューを使って、同時に2つの別フレームを書き換えるには?

[上に] [前に] [次に]
えるく [E-Mail] 1999/08/06(金) 08:16:01
こんにちは。はじめて質問させていただきます。
三分割のフレームを使って、FRAME1にプルダウン形式のメニューを置きリンク先を選ぶと、FRAME2とFRAME3が同時に書き換えられるというしくみのものを作りたいと思っています。
こちらのホームページを検索させてもらったところ、「別フレームへのジャンプのしかた」と「2つのフレームを同時に書き換える方法」はそれぞれわかったのですが、それ以上のことが何もわかりません(^^;;
これを組み合せればわたしが作ろうとしているページは実現するのでしょうか? もしそうであれば、組み合わせ方を教えていただけませんか?

「別フレームへのジャンプのしかた」(こちらで検索させてもらったものです)
<SCRIPT language="JavaScript">
<!--
function A_Li(){
Sel=document.Link1.OP.selectedIndex;
Ms=document.Link1.OP.options[Sel].value;
parent.FRAMENAME.location.href=Ms;
}
// -->
</SCRIPT>
<CENTER>
<FORM name="Link1">
<SELECT name="OP" onChange="A_Li()">

<OPTION value="">選んでください
<OPTION value="http://">ここに説明文を書きます
<OPTION value="http://">○×△へリンク!
<OPTION value="http://">#$%へリンク!!

</SELECT>
</FORM>
</CENTER>

「2つのフレームを同時に書き換える方法」(こちらで検索させてもらったものです)
<SCRIPT LANGUAGE="JavaScript">
  <!--
  function jump() {
    window.parent.frame2.location="xxxx.html";
    window.parent.frame3.location="yyyy.html";
  }
  // -->
  </SCRIPT>
  <A HREF="dummy.html" onClick="jump(); return false;">XXX</A>

もしこれを組み合せても作れないようなら(何も分かってなくてすみません)、新たな方法を教えて下さい。
どうぞ、よろしくおねがいします。

葉月 1999/08/06(金) 08:49:01
if文を使えばいいのかもしれない...

<SCRIPT language="JavaScript">
<!--
function A_Li(){
Sel=document.Link1.OP.selectedIndex;
if (Sel == 0) {
window.parent.frame2.location="xxxx1.html";
window.parent.frame3.location="yyyy1.html";
} else if (Sel == 1) {
window.parent.frame2.location="xxxx2.html";
window.parent.frame3.location="yyyy2.html";
} else {
window.parent.frame2.location="xxxx3.html";
window.parent.frame3.location="yyyy3.html";
}
}
// -->
</SCRIPT>

こんなような感じかな...
動作チェックしてないけど、たぶん動くと思う(おいおい...)

えるく 1999/08/06(金) 10:36:15
葉月さん、レスありがとうございます。
早速やってみます!!

えるく 1999/08/06(金) 11:47:55
葉月さんに教えていただいた部分まではできたのですが、その先の部分をどう書き直したらいいのかわかりません。
一応、次のように続けてみたのですが

<FORM name="Link1">
<SELECT name="OP" onChange="A_Li()">
<OPTION>選んでください
<OPTION>○♪○へリンク
<OPTION>○×△へリンク
<OPTION>#$%へリンク
</SELECT>
</FORM>

これで、やってみたところ
「window.parent.frame2はオブジェクトではありません」
というエラー文がでてしまいました。

どこをどう直したらいいのでしょうか?
あまりにも何もわかってなくてスミマセン!!
どうぞ、教えて下さい。

それから、これらはすべて BODY のなかに書き込めばいいのですか?

Nobu3 1999/08/06(金) 12:02:03
おそらく、フレームの名前が違うのだと思います。
フレームセット(フレームの定義ファイル)の中身はどうなっていますか?
「frame2」というのは
<frame name="frame2" src="hoge.htm">
などの「name」の部分です。
また、フレームの状態でないと正しく動きません。

書く場所ですが、スクリプトは<head>内に書くほうが良いと思います。
フォームは普通に書けば良いでしょう。

えるく 1999/08/06(金) 12:53:13
Nobu3さん、レスありがとうございます。
ご指摘どおり、フレームの名前が間違っていました(^^;;
丁寧にご指導くださり、ありがとうございました。

フレーム名を訂正したところ、無事、作動いたしました。
葉月さん、Nobu3さん、ほんとうにどうもありがとうございました!

えるく 1999/08/06(金) 12:59:31
[[解決]]
すみません。
「解決」をチェックし忘れました(^^;;

[上に] [前に] [次に]