JavaScript : ブラウザ中央にウィンドウを開く

HacknoteのTwitter、Facebookシェアへのボタンにも使っているスクリプトです。

window.open()は特定の位置にウィンドウを開くことができますが、ブラウザの位置・広さをもとにブラウザの中央にウィンドウを配置します。

function popupWindow(url, name, w, h) {
    url = encodeURI(decodeURI(url));
    wTop = window.screenTop + (window.innerHeight / 2) - (h / 2);
    wLeft = window.screenLeft + (window.innerWidth / 2) - (w / 2);
    window.open(url, name, 'width=' + w + ', height=' + h + ', top=' + wTop + ', left=' + wLeft + ', personalbar=0, toolbar=0, scrollbars=1, resizable=!');
}

//popupWindowへ投げる変数
//url  : ウィンドウに出すURL
//name : ウィンドウ名
//w    : ウィンドウの横幅
//h    : ウィンドウの縦幅

wTopwLeftにウィンドウを配置する座標を計算して格納し、window.open()のオプションに設定しています。