• ベストアンサー

1クリックで2つの画面を・・・。

ホームページを作るときにフレーム構造の右と左の両方のページを 1つのリンクをクリックしたことで1度に変えたいのですが どのようにコードを書きこめばいいのでしょう?教えてください。 できなければ“できない”という回答もいただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • kokucho81
  • ベストアンサー率61% (157/255)
回答No.4

2つのみならず、3つでも4つでも10個でもできるように、汎用的にしてみましょうか。 まず、以下のソースを、「kjump.js」として保存。 // (C) KOKUCHO81 location.href Jump Function function jump() { for(var i=0; i<arguments.length; i++) { if (arguments[i].match(/.htm|.cgi/gi)) { if (arguments[i+1]&&!arguments[i+1].match(/.htm|.cgi/gi)) { window.open(arguments[i], arguments[i+1]); } else { window.open(arguments[i], "_self"); } } } } そして、ジャンプ機能をとりつけるファイル(クリックや操作対象となるファイル)に <script language="javascript" src="kjump.js"></script> と挿入します。 あとは、使うだけ。 例えば、今左のフレーム名が"LEFTFRAME" こんど変える.htmlが"LEFT.html" 右のフレーム名が"RIGHTFRAME" こんど変える.htmが"RIGHT.htm" とすると、 <A href="javascript:jump('LEFT.html','LEFTFRAME','RIGHT.htm','RIGHTFRAME')">2つ一気にジャンプ</A> 上のものに加えて、新しいウィンドウまで出したいときには、 <A href="javascript:jump('LEFT.html','LEFTFRAME','RIGHT.htm','RIGHTFRAME',"NEW.html','_blank')">2つ切り替え+1つ新規</A> などとなります。 また、今いるフレーム名は省くことができるので、今仮にLEFTFRAMEに「OLD.html」が入っていて、ここに2つ一気に書き換えるものを記述するときは、 <A href="javascript:jump('LEFT.html','LEFTFRAME','RIGHT.htm','RIGHTFRAME')">2つ一気にジャンプ</A> と先ほどと同じ記述で書いても良いですが、'LEFTFRAME'をはぶいて、 <A href="javascript:jump('LEFT.html','RIGHT.htm','RIGHTFRAME')">2つ一気にジャンプ</A> と書いても良いです。 もちろん、普通のリンクの代わりに使用して、 <A href="javascript:jump('LEFT.html')>普通のリンク</A> や <A href="javascript:jump('LEFT.html','top')>トップに出す</A> といった使用法も可能です。 あと、CGIにも対応してます。 <A href="javasciript:jump('LEFT.cgi','LEFTFRAME','RIGHT.htm','RIGHTFRAME)>CGIと混合</A> どうでしょう。参考になりそうですか?

cohkoji
質問者

お礼

親切な回答をありがとうございました。 非常に分かりやすく、しかもすぐに取りつけることが出来ました。 本当にありがとうございました。

その他の回答 (3)

noname#25358
noname#25358
回答No.3

 失礼しました(^_^;  下記の方法では出来ないようです(^_^;  下記の例の HTML_A のソースにおいて、 <script> <!-- function Jump() { parent.HTML_B.location.href='HTML_Bの跳び先'; } //--> </script>  JavaScript部にこう。  アンカーは、 <a href="HTML_Aの跳び先" onClick="Jump()">  と張ってください。これでいけます。

noname#25358
noname#25358
回答No.2

 えーと、JavaScriptを使います。  たとえば、 <FRAMESET> <FRAME NAME=”HTML_A”> <FRAME NAME=”HTML_B”>  こういうフレームがあったとします。  この場合、HTML_A 上にあるフレームから HTML_B の内容を変更するには、HTML_A に、 <SCRIPT> <!-- function Jump() {   parent.HTML_B.location.href='HTML_Bの跳び先'   location.href='HTML_Aの跳び先' } // --> </SCRIPT>  と入れておき、アンカータグを、 <A onClick=”Jump()”>  とすればよかったと思います。たしか。

  • KojiS
  • ベストアンサー率46% (145/312)
回答No.1

リンクでやろうと思ったら _topを指定して新しいフレーム構造を作ればいいと思います。 フレームの元にあるページを変更したくない場合は、JavaScriptを使わなければできません。

関連するQ&A