■--フレームの指定場所に飛ぶには? >>>いちろーず -- 2002/06/24-23:24..No.[13005] |
|||
はじめまして。 色々調べたのですがわからなくて、教えてください。 フレーム分割していないページ(top.html)からフレーム分割してるページ (index.html で left.html と right.html に分けてある) のうち、例えば、 <a href="right.html#first"> で、right.htmlの <a name="first> 部分に飛ぶと同時に フレーム分割で、left.html の方も表示させたいのです。 なんかわかりにくいですが、フレーム分割をさせつつ、 フレーム分割してあるページのうち 片方のフレームのある場所に飛ぶにはどうやって <a href=""> の指定をしてやればいいかがわからないのです。 よろしくお願いします。 |
|||
>>> 久遠 -- 2002/06/24-23:52..No.[13006] |
|||
いちろーずさんは フレームなしのページからフレームありで 右→right.htmlのfirstの部分 左→left.html にジャンプしたい、と言っているのでしょうか? でしたらindex.htmlのフレームの指定で <FRAME SRC> でページを指定する際に右側だけright.html#firstという形にすれば大丈夫だと思うのですが・・・・・・。 |
|||
>>> いちろーず -- 2002/06/25-00:11..No.[13007] |
|||
久遠さん、Resありがとうございます。 なんかわかりずらくてすいません。 例えば、フレームなしのページ(top.html)からフレームあり (左側はleft.html, 右側はright.html でこの指定は index.htmlでしてある) のページの右側の first, second, third のような部分に飛ぶとします。 普通に top.html の中で、 <a href="right.html#first"> のように指定すれば、right.html の first の部分には飛びますが、 left.html もフレームとして表示はしてくれません。 これを <a href="index.html">と指定した時のように、 フレーム表示をさせつつ、right.html の方は first の部分に飛ばしたいのです。 そうするための top.htmlでの<a href="">の書き方がわからないのです。 index.htmlのフレームの指定で<FRAME SRC>でページを指定する際に 右側だけright.html#firstという形にしてしまうとfirstの部分にしか 飛べなくなってしまってそれも困るのですが・・ それとも、first, second, … と飛ぶ分だけの HTMLを用意してそれぞれで right.html#first right.html#second のように指定するしかないのでしょうか? |
|||
>>> 久遠 -- 2002/06/25-22:33..No.[13021] |
|||
やっぱり少しおっしゃっていることの意味がわかりません。 http://easter.ne.jp/kirat/top.html こういうことだと思ったのですが・・・。 >右側だけright.html#firstという形にしてしまうとfirstの部分にしか >飛べなくなってしまってそれも困るのですが・・ とは、どういうことでしょうか。 また上のURLといちろーずさんのやりたいこととはどう違うのでしょうか。 うまく理解できなくてすみません。 上の例を使って具体的におっしゃってくださるとうれしいのですが・・・。 |
|||
>>> いちろーず -- 2002/06/25-22:59..No.[13022] |
|||
index.html
の中で下のように書いてあるとします。 <frame src="left.html" name="left"> <frame src="right.html#first" name="right"> そうすると、top.html(top は、フレーム分割してありません) のソースで <a href="index.html">firstへ</a> と書いた部分はうまく left.html と right.html が表示され、 right.html の方は、first の部分へ飛んでくれるのですが、 top.html のソースには他にも下の様なのがあって、 <a href="index.html">secondへ</a> この場合も、<a href="index.html"> を指定してしまうと right.html#first の方に飛んでしまうのです。 本当はここで、right.html#second に飛んで欲しいのです。 (フレーム分割で、left.html も表示させつつ) http://easter.ne.jp/kirat/top.html ここのHPですと、>>>ENTER をクリックしたときは right.html#first に飛んでくれますが、 http://easter.ne.jp/kirat/top.html に >>>ENTER2 というのを追加してこれをクリックしたときには、right#second に 飛んでくれるようにしたいということです。 もちろん left.html もフレーム表示させつつ。 お願いします。 |
|||
>>> マリア -- 2002/06/25-23:32..No.[13023] |
|||
私の知っている限りではムリです。 いちろーずさんが先に言われていたように別々のフレーム定義 ファイルを使用するしかないと思われますが、その手間を考え たら、top.htmlもフレーム分けするのが一番ラクだと思います。 |
|||
>>> いちろーず -- 2002/06/25-23:54..No.[13024] |
|||
マリアさん、Resありがとうございます。 別々のフレーム定義ファイルを使用するとなると、 それが50個ほどにもなってしまうので.. ただ、top.html でもフレーム分けをするというのも、 できれば避けたいのです。それは... 表に書いてあるタイトルをクリックすると、そのタイトルに関する 場所に移動する。そして、違うタイトルにもすぐ移動できるように left.html でタイトル一覧を作ってあるので、left.html と表の タイトルの両方に <a href=""> があるということになってしまいますので。 表のタイトルの方の <a href=""> を消してしまうという手もありますけど。 ところで、変数のHTMLファイル間での共有ってできるんでしょうか? (そもそも、変数をどうやって使うかはわからないんですが) それができれば、 top.html で変数 POINT="first" などと作って、 index.html で <frame src="right.html#(ここに変数が入る)" name="right"> とすれば、うまく出来るかなとも考えたのですが。 |
|||
>>> いちろーず -- 2002/06/26-00:36..No.[13026] |
|||
わにさん、Resありがとうございます。 Javascript に関してはまだほとんど何もわからないような状態なので、 (これから勉強していこうとは思っていますが) よろしければ、具体的にどうすればよいのか、教えていただけますか? 「とほほのWWW入門」さんの http://tohoho.wakusei.ne.jp/wwwqa1.htm#TwoFrames ここに「2つのフレームを同時に書き換えるには?」 と載っていますが、これの応用ですか? 試しにやってみたのですが、よくわかりませんでした。 <修正> あれ、わにさんのレス消えてる? |
|||
>>> わに -- 2002/06/26-00:57..No.[13027] |
|||
すみません、手元で試してからと思って先のレスは削除しました。 私はごく単純にwriteでフレーム定義を書き出してみました。 (新規ウィンドウを使いますが) ただJavaScriptを使うことがスマートかどうかはわかりません。 フレームの使用を見直してみたり、レイアウトを再考するなどで もっと扱いやすいサイトにするという選択肢もありかなと思います。 |
|||
>>> いちろーず -- 2002/06/26-23:34..No.[13042] |
|||
見よう見まねで、JavaScript書いてみたのですが、よくわからないです。 どのように直せば良いのか教えて下さい。 top.htmlのソース <script type="text/javascript"> <!-- function jump() { window.location.href="index.html" } // --> </script> <a href="#first" onClick="jump(); return false;">FIRST</a> index.html のソース <frameset cols="20%,*"> <frame src="left.html" name="left" noresize> <frame src="right.html$" name="right"> </frameset> index.html の right.html$ の $ の所に、 window.opener.document.link.href が代入されれば、うまくいくかなと思ったのですが、どうすればいいやら... わにさんのwriteでフレーム定義を書き出す方法というのは どういうものなのか、よろしければソースをコピペして頂けるとうれしいのですが。 他にも方法があれば、それもよろしくお願いします。 |
|||
>>> わに -- 2002/06/27-01:08..No.[13043] |
|||
私はJavaScriptに詳しいわけではないので、 すみませんがソースを出すのは控えさせて頂きます。 説明だけ記します。 top.htmlの変数を、呼び出すindex.htmlに引き渡すのではなく (多分出来ないと思います)、動的に index.htmlを生成するというのを考えました。 window.document.write("<frameset …"); window.document.write("<frame src=…"); と直接index.htmlを書き出す方法です。 後は変数を使って呼び出すhtmlファイルの位置も指定できる (src = right.html + 変数、で#firstなどの文字を クリックされたリンク元によって代入する)のではないかと思います。 あとはこちらを参考に http://tohoho.wakusei.ne.jp/wwwjs.htm http://hp-design.net/ 個人的には、レイアウトの見直しの方が、後々のメンテナンスが 楽なような気がしますが。 |
|||
>>> いちろーず -- 2002/06/27-17:33..No.[13056] |
|||
JavaScript中ではタグが使えないからどうすればいいのかなと思ってたら、 document.writeを使えばいいのですね。 やっと完成しました。 参考までに下にソース載せときます。 <script type="text/javascript"> <!-- function jump(point) { document.open(); document.write("<FRAMESET cols='20%,*'>"); document.write("<FRAME src='left.html' name='left'>"); document.write("<FRAME src='right.html#" + point + "' name='right'>"); document.write("<\/FRAMESET>"); document.close(); } // --> </script> <a href="javascript:void(0)" onClick="jump('First'); return false;">FIRST</a> 色々、大変ためになりました。 教えてくださった皆様方、ありがとうございました。 <修正> JavaScript内では直接 </ とは書けないのですね。 <\/ に修正しときました。 |
|||