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");
        }
})();

【JavaScript/IE】ウインドウサイズの変更に合わせて要素を拡大縮小する

onresize時に現在のウインドウサイズ変更の比率に合わせてドキュメントの拡大率を動的に変更する。
動作確認はIEのみで、他ブラウザでは正常に動作しないかも。

(function(){
    window.addEventListener("resize",windowZoom, false);
    //ウインドウオープン時のデフォルトサイズ
    var defaultSizeH = document.documentElement.scrollHeight || document.body.scrollHeight;
    var defaultSizeW = document.documentElement.scrollWidth || document.body.scrollWidth;

    /**
    * windowZoom
    * ウインドウの拡大率を変更する
    * @return {boolean} true
    */
    function windowZoom() {
        var sizeRatioH = window.innerHeight / defaultSizeH;
        var sizeRatioW = window.innerWidth / defaultSizeW;

        var windowRatio = sizeRatioH > sizeRatioW ? sizeRatioW : sizeRatioH;
        document.body.style.zoom = windowRatio * 0.95;
        return true;
    }
})();