B-Teck!

お仕事からゲームまで幅広く

【JavaScript】ウインドウを閉じたとき子ウインドウも一緒に閉じる

ウインドウにモーダルじゃない子ウインドウがある時、閉じたら一緒に消えてほしかった。
IEでのみ動作確認済み。
コードでは1対1の親子関係しか定義してないけど、childWindowを配列にして突っ込んで、
each()とかmap()とかああいうので回せばいいと思う。

(function() {
        //ウインドウが閉じられたときに子ウインドウが存在したら閉じる
        window.addEventListener("beforeunload",function() {
            if(!!childWindow){
                childWindow.close();
            }
        }, false);
        
        //自分自身を新しいタブで開く
        //無限ループにならないように親のいないウインドウのときのみ実行
        if(window.opener === void 0){
            //window.open()の戻り値は開いたwindowオブジェクトなので、閉じるとき用に確保する
            var childWindow = window.open(location,"","scrollbars=no");
        }
})();