JavaScriptのWindow.に別のウィンドウを指定するには

[上に] [前に] [次に]
うーりえ [E-Mail] 1998/09/17(木) 03:57:23
『window指定にopen()関数の戻り値を用いる?』の続き、というか仕切直しです。

JavaScriptにおいて実行先ウィンドウを指定するには
window.top.frame1.○○とか
window.parent.opener.○○とか指定しますよね?
openerでは開かれた子ウィンドウから親ウィンドウを指定できますが
逆に親ウィンドウ、もしくは別の子ウィンドウから
特定のウィンドウを指定するにはどうしたら良いのでしょうか。

質問に至った状況は次の通りです。
1.HP入室の時、トップページでwindow.open()により
  自動的に小窓(子ウィンドウ)が開くようになっています。
2.HPの中で、その子ウィンドウに別の内容を表示させます。
3.その人が何らかの理由で再びトップページから入ってきたとき
  子ウィンドウを閉じてあるか、開いたままかをif(window.closed)で判定し
  前に開いたもの(HP内で内容が変わっている)がある場合には
  window.open()を回避して初期の内容に戻らないようにしたい。
ということです。

子ウィンドウの指定にはopen()の戻り値が使えるとのことですが
ver newWin = open("","test")の後に
newWin.closedとかnewWin.nameとかやっても
どうしてもその前に指定した子ウィンドウが開いてしまいます。
子ウィンドウを開かないための判定という目的上
それでは支離滅裂なのです・・・・

ウィンドウを開いてしまうことなく特定のウィンドウを指定する方法が
何かありましたらお教え下さい。
例えばver newWin = open("","test")としても
newWinに戻り値が入るだけで
ウィンドウは開かないようにする(open()自体は実行されない)方法とか・・・あれば

うーりえ 1998/09/17(木) 04:02:47
上記のコメント内、verはvarです
間違えましたm(__)m

Masa [E-Mail] 1998/09/17(木) 05:07:01
open()を実行したら必ずウィンドウに「なにか」してしまうので、
document.refererを使って、自分のページから帰ってきた場合は
open()を実行しない、というif文にしてはどうでしょうか。

うーりえ 1998/09/17(木) 06:41:51
>Masaさん
実は再びトップから入った場合、
HPの構成上、open()実行時には
かならず『自分のページから帰ってきた』ことになってしまうのです・・
せっかく智慧を下さったのに申し訳ありません。

しかしなんとか自力で解決しました。

初期に開いたものをウィンドウ名「A」内容「1.html」とすると
HP内で小窓の内容を変える際に
まず「A」にclose()を持ったhtmlを送って「A」を自動的に閉じさせ、
同時に新たにウィンドウ名「B」を開きます。

このとき、直接新しい内容「2.html」を開かせず
「B」にはもともとの「A」内容「1.html」をサイズ0のフレームにして含ませて
新たなフレーム名「C」に目的の内容「2.html」を表示させました。

こうすることで、再度入室されてもフレーム「A」が再表示されるだけで
自らウィンドウ「B」を消さない限り状態が維持されるようになりました。
なんとも理屈が複雑で自分でも大変ですが・・・(^^;

ともかく3日間に渡る苦悩は解決しました。

ただ、表題の『window.に別のウィンドウを指定するには』は
いまだ興味があります。
これが出来ると他の部分でもかなり役立つので、
もうしばらく皆さんの智慧を待ちたいと思います。

うーりえ 1998/09/17(木) 06:49:16
上のだけでは説明不足ですね。

実はウィンドウ名「A」というのはBGMの為のウィンドウなのです。
それの内容を途中でBGMパネル+HPの内容に変えて
小窓だけで独立して表示できるコーナーを作りたかったのでした。

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