JavaScript 跳出新視窗在螢幕正中間的方法

使用showModalDialog開啟新視窗,通常必須指定距離左邊和上面高度來設定初始位置,但若遇到不同解析度的瀏覽器的話,位置通常會跑掉,因此就必須使用JavaScript的window.screen來達成,以下面紅色字體部分來解釋

先取得螢幕的高度的一半,代表如果頁面高度如果為 1 的話就會在中間,但因為高度不是 1 ,所以要扣掉高度的一半,也就是(400/2),同理寬度也是相同的求法。

起始頁面 A.aspx
function doOpenWaitSendOut(strUrl)
{
    feature = 'width=500,height=400,top=' + ((window.screen.height / 2) - 200)
    feature += ',left=' + ((window.screen.width / 2) - 250)
    feature += ',scrollbars=yes,resizable=yes,status=yes'

    var EdiValue = window.showModalDialog('B.aspx', 'WaitSendOut', feature);
    if (EdiValue == 'OK')
      document.all.btnOK.click();
}

頁面 B.aspx
  function doSndEnd()
  {
    window.returnValue = "OK";
    window.close();
  }

留言