ウィンドウが閉じられているかどうかを知りたい~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個知っていることが増えた!!
*****************************************
ウインドウの状態を把握できればよいので、
①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個知っていることが増えた!!
この記事へのコメント