3

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

  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 中也能正常工作?

4

2 回答 2

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>

您可以在此处查看详细信息

于 2015-02-26T17:44:48.413 回答
0

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

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

于 2013-10-04T15:30:06.547 回答