目次のフレームで現在位置を示すには?

[上に] [前に] [次に]
山好きのWeb初心者 1999/07/23(金) 18:34:25
目次のフレームで、現在表示しているページの画像ボタン(もしくは文字)だけ違う画像(色)になって現在位置をわかりやすくするのはどうやったらいいのでしょうか。目次の項目が画像の場合と文字の場合、それぞれ教えていただけないでしょうか。宜しくお願いいたします。 

ST 1999/07/23(金) 20:16:56
一番汎用性(または互換性)がありそうなのはそれぞれのページ専用のフレームを作っておいて,項目をクリックするとtarget="_top"で各フレームページを呼び出すことでしょうね。でも多分そういうのは結構面倒くさいから却下だろうなぁ…(--;

匿名希望 1999/07/23(金) 20:52:22
JavaScriptを使えばできますよ。
目次のフレームで同じ項目「What's New」とかの画像が2つ切り替えられるようにしておき、
目的のリンクをクリックしたらその画像の変更と、変えたいフレームのページを返るという
2つの事をさせればいいはず。

例えば、画像変更部分を最初に定義しておいて、<A>タグに OnClickで、クリックしたら画像を
変更とかすればいいのでは。

おぱく堂 1999/07/24(土) 00:15:05
onClickだと、ブラウザの「戻る」とかを使われるとズレちゃうかも。
各ページの onLoadも併用したらどうでしょうか。
ただ、目次フレームが読み込まれてないとエラーが出ちゃうので、
その辺のチェックを親ファイルに変数を設定するなどしてやる必要はあるけど。

文字は……どうやるんだろ。DHTML使えば可能だけど、CSSとかでいい方法が
あるのかも。誰か詳しい方の回答に期待。自分も知りたいです。

」鐶rurun 1999/08/26(木) 21:50:39
初めまして。初心者です。ちょっと便乗質問させてもらいます。
私も同じような事としたいと思い、JavaScriptを使ってみました。
私の場合、目次の画像ボタンが押された時、目次フレームと内容フレームを同時に変更するようにしてみたのですが、
やはりブラウザの「戻る」を使うと目次ボタンと内容がズレてしまい困っています。
私のやり方が間違っているのでしょうか?どうすればズレなくなるのでしょう?
>各ページの onLoadも併用したらどうでしょうか。
これは具体的にはどうしたらよいのでしょうか?私の場合もこれでズレが直るのでしょうか?
何分、全くの初心者でさっぱり分からないもので、もう少し詳しく教えて頂けるとうれしいのですが(^^;
どうか、皆様よろしくお願いします。

harurun 1999/08/26(木) 23:22:50
すみません。上の名前が文字バケしてました。
今度は大丈夫かしら?

おぱく堂 1999/08/26(木) 23:32:14
仮に、左フレームが目次、右が本文だとする。
目次フレーム名は仮に left、本文フレーム名は仮に right とする。(安直)
目次にあるボタン画像を変えるスクリプトを仮に banana(img)とする。imgは、どの画像を変えるかという引数。
で、右の表示される各ページに <body onLoad="parent.left.banana(このページに対応した引数)">
と入れておけばいいわけです。……基本的には。
しかし、このままだと目次が読み込まれていなかったり、フレーム外に表示したりした時にエラーが出ちゃうので
多少工夫する必要はあるでしょね。

Aurai 1999/08/27(金) 01:16:01
http://www.fureai.or.jp/~yomorita/sand/webmake/javascript/menuframe_frame.htm
基本的にはこんな感じでしょうか

かがあ 1999/08/27(金) 10:05:45
FLASHを使えば簡単ですって、答えになってないか

harurun 1999/08/30(月) 09:31:35
おぱく堂さん、早速のご説明有難うございます。
そうするとつまり匿名希望さんが言われたやり方の場合のみという事ですよね?(理解不足だったらすみません)
あのうでも、匿名希望さんのやり方では一回選択されたボタンは、他のボタンが選択されている時でも
ON状態のまま残ってしまい、OFF状態に戻すことが出来ませんでした。
それで私は、A,B,C,の画像ボタンがあった場合、AがON状態のボタンを表示させるA_Navi.htm、
BがON状態のB_Navi.htm、CがON状態のC_Navi.htm、というようにそれぞれについて用意してボタンがクリックされると、
それぞれ専用のNavi.htm、Contents.htmに同時にジャンプさせるようにしているのです。
(上下に分割している為STさんの方法ではスクロールするとNavi部分が見えなくなってしまうので)
この場合に「戻る」でズレささない方法が知りたかったのですが・・・。
説明がヘタですいません、これでわかってもらえるでしょうか?

Auraiさん、そうなんですが、画像ボタンを使いたいもので(^^;
FLASHも持ってないデス。

おぱく堂 [HomePage] 1999/08/31(火) 00:10:45
「戻る」でズレさせないためには、やはり一つの目次ファイルで何とか
するしかないでしょう。
で、Auraiさんの方法を応用すれば「画像ボタン」もOKですよ。
ボタン選択の部分を「AをOnにしたら同時に他のB,CをOffにする」という
画像入れ換えのスクリプトに変えるだけで大丈夫のはず。

harurun 1999/09/01(水) 17:53:33
あっ、ほんとだ・・・出来ました!おぱく堂さんありがとうございます!
> <body onLoad="parent.left.banana(このページに対応した引数)">
もNN4.5ではうまくいき、ズレなくなりました。
でも、IE5ではエラーになってしまいました。
> 多少工夫する必要はあるでしょね。
↑わからないので、何もしてないのです。そのせいですね。
それと、この時にボタンの上にマウスを乗せると、別の画像ボタンに
置き換え、
はずすと元に戻す・・・というのは出来ないんですね?(やりたいんだけど・・・)
onclickでの画像置き換えと両立させられませんでした。

おぱく堂 1999/09/01(水) 23:33:06
> この時にボタンの上にマウスを乗せると、別の画像ボタンに
> 置き換え、はずすと元に戻す・・・というのは出来ないんですね?

onMouseOver と onMouseOutは、その状況でも使えます。
でも元に戻す時に、onLoadで選択された画像にしなきゃいけないので
ちょっとややこしいかも。

で、画像関係のスクリプトは IE4/5でも動くはず。
onClickとも両立するはず。
……なので、原因は別にあるか、と。

Nobu3 [E-Mail] [HomePage] 1999/09/02(木) 00:27:23
ちなみに、そのページは公開できないのでしょうか?
説明を尽くすよりも正確だし説明がはやいです・・・。

ちなみに、ナビフレーム側で常にメインフレームを監視する案はどうですか?
多少重くなるかもしれませんが・・・。

harurun 1999/09/02(木) 17:08:21
出来ました!IEでも、うまくいきました。
すみません、皆さん、お騒がせしてしまって・・・。原因は、
<body onLoad="parent.left.banana(このページに対応した引数)">
のbananaの部分の名前のスペルミスでした。お恥ずかしい・・・。
(でも、NNではなぜエラーにならなかったんだろう???はて?)

>onMouseOver と onMouseOutは、その状況でも使えます。・・・・
そうなんですか、やり方はあるのですね。では考えてみます。
行き詰まったらまたご相談に参りますので、その時はまたよろしくお願いします。
おぱく堂さん、皆様、どうも有難うございました!
(ちなみに、H.Pはまだ作り始めたばかりで、まだアップロードしてないです。)

「解決」・・・どうしよう?私はこのトピを作った人じゃないので押せない(^^;

harurun 1999/09/02(木) 20:10:32
あのう、原因はスペルミスではなかったようです(つっこまれる前に言っとこう(^^;)
今、試しに間違ったスクリプト名にしてNNで実行してみたら
エラーにはならなかったけど「戻る」ではズレてしまいましたので。

どこを直したらいいのか?と思いスクリプト名を変えたり戻したり、
他も色々直したり元に戻したりしているうちに、
何回か書き換えたスクリプト名に、スペルミスがあるのにふと気づき、
それを直したらIEでうまくいったので、原因はそれだったのか・・・
と、ついそう思ってしまったのです。
実のところ何が原因だったのかよくわかりません。

P.S おぱく堂さん、Nobu3さん、H.Pスゴイですね!勉強になります!

harurun 1999/09/04(土) 10:36:15
その後・・・・・
何回か実行しているうちに時々最初にエラーが出ることに気づき今度こそ(?)
目次が先に読み込まれてないせいか?と思いA.htmからNavi.htmとContents.htmに
行くようにしてたのをContents.htmの代わりにdummy.htmにまず飛ばし、
数秒後にContents.htmに飛ばすようにしたら、解決しました。

それとonClickとonMouseOut、onMauseOverの両立の件、
onClickでフラグを立てて、それによってonMouseOut、onMauseOver時、
画像切り替えをし、そしてonClick時の全ての処理(画像とフラグのON/OFFなど)を
ひとつのスクリプトにまとめ、Contents.htmのonLoadでそのスクリプトを
呼び出すようにしたらうまく行きました。有難うございました。
以上、最終(?)ご報告まで・・・・・。

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