- ベストアンサー
1クリックで2つの画面を・・・。
ホームページを作るときにフレーム構造の右と左の両方のページを 1つのリンクをクリックしたことで1度に変えたいのですが どのようにコードを書きこめばいいのでしょう?教えてください。 できなければ“できない”という回答もいただきたいです。
- みんなの回答 (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> どうでしょう。参考になりそうですか?
その他の回答 (3)
失礼しました(^_^; 下記の方法では出来ないようです(^_^; 下記の例の HTML_A のソースにおいて、 <script> <!-- function Jump() { parent.HTML_B.location.href='HTML_Bの跳び先'; } //--> </script> JavaScript部にこう。 アンカーは、 <a href="HTML_Aの跳び先" onClick="Jump()"> と張ってください。これでいけます。
えーと、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)
リンクでやろうと思ったら _topを指定して新しいフレーム構造を作ればいいと思います。 フレームの元にあるページを変更したくない場合は、JavaScriptを使わなければできません。
お礼
親切な回答をありがとうございました。 非常に分かりやすく、しかもすぐに取りつけることが出来ました。 本当にありがとうございました。