ウィンドウが閉じられているかどうかを知りたい~window,closed

javascriptで、サブウインドウが全部閉じているときに処理をしたい!ということがあった。

*****************************************
ウインドウの状態を把握できればよいので、
①window.open()の時にウィンドウオブジェクトを取得する。
②window.closedでウィンドウが閉じているかどうか取得する。

【window.closed】
真偽値を返す
true: ウィンドウが閉じられている事を示す
false: ウィンドウが開いている事を示す

↓↓こんな感じ↓↓
var winObj = window.open("URL","ウィンドウ名","オプション"); 
if ( winObj.closed ) {
//閉じてる時にやりたい処理
}

*****************************************
よし!!javascriptの本にも、ネット上のリファレンスにも、たいていのブラウザでサポートされてるってあるしいける!
と思ったのもつかの間、IEで開いてみたら想定外の動きをしている…
あれれれ?とおもって調べてみたら、なんとIEのバグらしい。

【参考】
「BUG: が window.closed プロパティが正しくない値が返されます」
http://support.microsoft.com/kb/241109/ja

真偽値を逆に返すことがあるって…なんだそりゃ


初めに思い描いてたやり方はガラガラと崩れてゆきました。

大人しく、
サブウインドウで閉じるボタンをつけて、「ブラウザの閉じるボタンはやめてね☆」ってするか、
サブウインドウでonbeforeunloadイベント取るって処理する
のどちらかの方法でやるべきなんだろうなぁ・・・

ちょっと残念だけれど、1個知っていることが増えた!!

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック