Javascript:在屏幕中央打开弹出窗口(Chrome)

时间:2013-10-04 10:50:22

标签: javascript google-chrome popupwindow

我正在使用此代码在屏幕中央打开一个弹出窗口

  function popupwindow(url, title, w, h) {
      wLeft = window.screenLeft ? window.screenLeft : window.screenX;
      wTop = window.screenTop ? window.screenTop : window.screenY;

      var left = wLeft + (window.innerWidth / 2) - (w / 2);
      var top = wTop + (window.innerHeight / 2) - (h / 2);
      return window.open(url, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left + ', screenX=' + left + ', screenY=' + top);
  }

在Firefox,IE和Safari中一切正常,但在Chrome中,弹出窗口随机出现。 我怎样才能在Chrome中使用它?

2 个答案:

答案 0 :(得分:1)

我看到下面的代码工作正常。

<script>
    function popupCenter(url, title, w, h) {
      var left = (screen.width/2)-(w/2);
      var top = (screen.height/2)-(h/2);
      return window.open(url, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left);
    }
</script>

链接示例:

<a onclick="popupCenter('http://www.nigraphic.com', 'myPop1',450,450);" href="javascript:void(0);">CLICK TO OPEN POPUP</a>

您可以查看详细信息here

答案 1 :(得分:0)

这种情况正在发生,因为Chrome中的缩放级别不是100%。如果缩放级别关闭,则会更改坐标的获取方式。在其他浏览器中,至少是IE,缩放因子不会改变打开窗口的位置。所以通过检查缩放来纠正它,这将使用您之前在Chrome中提供的给定功能来解决您的问题。

另外,这是关于检查浏览器缩放级别的好文章:https://stackoverflow.com/a/5078596/2762516