WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:同じウィンドウを開く

0:[投稿] りんこ [2002/10/21 11:43 ][環境:WIN+IE WIN系+Java]

いつもいろいろと教えていただいてありがとうございます。
また教えてください。

複数のページ、複数の個所からリンクで、リンク先は全て同じページで、一度開いたら、ほかのリンクをクリックしたときにも、その開いたページが前面に出てくる・・・というような感じにしたいのですが。

こんな説明でおわかりいただけますでしょうか?
普通のリンクですと、リンクした先のウィンドウがどんどんと開いて増えていってしまうので、そうではなく、一度開いたウィンドウを前面に出す形に…。

ウィンドウ指定をすればいいのか…と思ってはいるのですが、うまくできません。
どなたか教えてください。よろしくお願いします。


1:[回答] Malic [2002/10/21 13:46 ]

こんなのでどう?

window.subwin = "";
function html_open() {
if( window.subwin.closed != false ) {
  window.subwin = window.open("URL","ウインドウ名");
  subwin.focus();
}else{
  subwin.location="URL";
  subwin.focus();
}
}


2:[回答] Malic [2002/10/21 16:39 ]

考えすぎた・・・。

window.subwin="";

function html_open(){
window.subwin = window.open("URL","ウインドウ名");
 subwin.focus();
}

これだけで良かった。


3:[関連] りんこ [2002/10/22 14:06 ]

Malicさん、ありがとうございます。
が、フォーカスされるものの、どんどんとウィンドウは開いてしまいます…。

<A HREF="javascript:html_open()">

上のようにリンクをしたのですが、これがいけないのでしょうか?


4:[回答] gun [2002/10/22 15:12 ]

そーゆぅので良いなら、JAVAスクリプトを使わなくとも、
<a>タグにターゲットを指定するのはダメです?
アト、リンク先の<body>タグに
onLoad="self.focus()"を指定して、前面表示されるように。

--リンク元--
<a href="test.html" target="test_win">リンクA</a>
<a href="test.html" target="test_win">リンクB</a>
<a href="test.html" target="test_win">リンクC</a>

--リンク先--
<body onLoad="self.focus()">

ただ、クリックの度に読み込みされますケドね・・・


5:[回答] りんこ [2002/10/22 15:38 ]

gunさん、ありがとうございます。
リンク指定とフォーカスはみごとです!
ただ、欲をいうと、クリックの度に読みこまないようにするということはできますでしょうか?

となると、やはりJAVAスクリプトになりますかね。


6:[回答] Malic [2002/10/22 16:28 ]

別ウインドウがどんどん開きますか?2のやつで。
PCでのウインドウ制御の設定等の環境の差なのかな・・・
(私のPC2台、 win2000いえ6.0、win95いえ5.5、NN4.6、7.0で動きましたが)

>クリックの度に読み込まないようにする・・・

子ウインドウの内容が他のHTMLに変わっていた場合、(要するにリンク等で別画面に遷移した場合)困ると思いますが。

子ウインドウは画面遷移をしないのであれば、
回答1の subwin.location="URL";  の文を削除すれば動くと思います。



7:[回答] Malic [2002/10/22 16:29 ]

いえ → IE でした。


8:[回答] りんこ [2002/10/23 11:00 ]

Malicさん、たびたびありがとうございます。
なぜ別ウィンドウがどんどん開いてしまったのかがわかりました。
"ウィンドウ名"が違っていたのでした。
お騒がせしましたm(_ _)m

子ウィンドウの内容は同じHTMLで、そこにはフォームがあり、チェックボックスをつけていて、チェックをした状態が次に子ウィンドウが呼び出された時にもイキるようにしたかったのです。

Malicさんに教えていただいた「回答1」でsubwin.location="URL";  の削除をしてみたのですが、再び子ウィンドウを呼び出すと、チェックボックスのチェックは外れてしまっていました。

そうなるとやはりCGIを使わないとJAVAでは制御が利かないでしょうか…。


9:[回答] Malic [2002/10/23 12:07 ]

親ウインドウの方が遷移してると、回答1のでは無理みたい。

window.open 関数の戻り値(オブジェクトですが・・)が画面遷移するときに無くなるので、難しいと思います。

できるかどうか分かりませんが、親子ウインドウ間の値のやり取りの参考HPのURL (古籏さんのHP、OPENSPACE)

http://www.openspc2.org/reibun/javascript/


10:[回答] gun [2002/10/23 17:24 ]

> そうなるとやはりCGIを使わないとJAVAでは制御が利かないでしょうか…。

"JAVA"じゃなくて、"JAVAスクリプト"ですね(^^;
アト、CGIを使用してもブラウザに読み込んでからの問題なので
制御はできません。


11:[回答] りんこ [2002/10/25 09:49 ]

Malicさん

参考HPありがとうございます。もう少し勉強してみたいと思います。いろいろとありがとうございました!

gunさん

JAVAスクリプトでしたね(-_-;)
CGIでも無理ですか?!
ん〜なんと説明したらいいか…ショッピングバスケットのようなものの、もっともっと簡易的なものを、と考えていました。

とりあえず、教えていただいたスクリプトで、同じウィンドウを表示することができたので、「完了」にしたいと思います。
いろいろありがとうございました!


12:[回答] gun [2002/10/25 10:59 ]

そーゆぅことでしたか。
それならば、代替え案のような方法が取れそうです。

HPをフレーム分割したページにして、フレームのHTMLの方に
Malicさんのスクリプトを隠せば、フレーム内のページ移動
ならば、window.open関数の戻り値はフレームのHTMLに残っ
てますから、希望の動作をさせられそうです。


13:[完了] りんこ [2002/10/25 11:26 ]

gunさん。
なるほど〜〜〜!それでしたらうまくいきそうですね。
そうなると、基本的なサイト構築をしなおさなくちゃですが(笑)
試してみたいと思います!
ありがとうございました!!!

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World