WEB相談室

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

タイトル:IEですべての子ウィンドウを閉じるファンクション

kirua [WriteDate : Sun Jun 10 00:34:05 2001]

今月からJava&JavaScript(InternetExplorer)の開発をしていますkiruaです。

表題の件で質問なのですが下記ex1の様に記述した場合
サブウィンドウが消えるのですがex2の様な記述でopenした
ウィンドウはcloseできないのでしょうか?

ex1)
    sWin = window.open("","blank","width=320,height=240");
    sWin.closed;

ex2)
    //開くwindowの名前は不特定。ウィンドウ数も不特定。
    window.open("","blank_a","width=320,height=240");
    window.open("","blank_b","width=320,height=240");

実際どのような処理を行いたいかと申しますと
親ウィンドウがUNLOADされたとき及び特定の処理が行われた場合
親が作成した子ウィンドウをすべて消し去りたいのです。
ex1のやり方で試してみたのですがウィンドウオブジェクトを
JavaScriptの仕様上保持しておくことができないみたいなので
別ファンクションでは不可能みたいなのです。
現在開かれているウィンドウの取得ができれば
親ウィンドウ名とopner.nameを比較し同一だったらclose処理を
行うといった仕組みを作成すればよいと思うのですが
なにぶん不慣れのためうまくできません。

先輩方どうかご教授くださいませ。
よろしくお願いします。


YK [WriteDate : Mon Jun 11 10:27:15 2001]

>sWin.closed;
sWin.close();
では!  

やはり、ここは、すべてのWINDOWハンドルを覚えていて、UNLOAD時にclose()する。


kirua [WriteDate : Mon Jun 11 18:44:48 2001]

 YK殿、回答ありがとうございます。

>やはり、ここは、すべてのWINDOWハンドルを覚えていて、UNLOAD時にclose()する。
 上記の方法が使えないのです。

 普通のHTMLの場合下記のFunctionを実行した場合
うまく消されます。しかしServletからBeanを受け取る
ページである場合、属性(ページが保有している情報)は
全て消されてしまうようなのです。よって下記のFunctionを
実行するとAlert「子ウィンドウはありません」が表示されてしまいます。

function windowOpen(){
   new_window =window.open("", '_blank',"");
}
function windowClose(){
 if(typeof(new_window)=='undefined'||new_window.closed) alert('子ウィンドウはありません');
 else new_window.close();
}


 なにかよい手段はありませんでしょうか。
お願いします。


YK [WriteDate : Tue Jun 12 15:19:21 2001]

new_windowは関数の外側に宣言していますか?

var new_window;
function windowOpen(){
  new_window =window.open("", '_blank',"");
}

てな感じに!


kirua [WriteDate : Tue Jun 12 16:22:41 2001]

たびたびRESありがとうございます。

 調査しましたところServletからBeanを受け取るたびに
ページ内のデータが初期化されてしまうようです。

 ですのでWINDOWハンドルを取得し保持するという方法は
使えないようです。

 となると、
>JavaScriptの仕様上保持しておくことができないみたいなので
>別ファンクションでは不可能みたいなのです。
>現在開かれているウィンドウの取得ができれば
>親ウィンドウ名とopner.nameを比較し同一だったらclose処理を
>行うといった仕組みを作成すればよいと思うのですが
このような方法でいけるかなと思ったりするのですが、
現在開かれているWINDOWハンドルは取得可能なのでしょうか。

ご意見よろしくお願いします。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]
ChaichanPAPA's World