弹出窗口不保持Safari中的宽度/高度尺寸

时间:2016-12-14 09:18:31

标签: javascript safari popup

我正在使用此脚本打开并居中具有特定大小的弹出窗口。除了在Mac OS 10.9.5上的Safari版本9.0.1中,窗口以完整大小打开,它按预期工作。 它适用于Mac上的所有其他浏览器。

任何想法为什么指定的窗口大小在Safari中不起作用?

function PopupCenter(url, title, w, h) {
  var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : screen.left;
  var dualScreenTop = window.screenTop != undefined ? window.screenTop : screen.top;
  var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width;
  var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height;
  var left = ((width / 2) - (w / 2)) + dualScreenLeft;
  var top = ((height / 2) - (h / 2)) + dualScreenTop;
  var newWindow = window.open(url, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no,scrollbars=yes,resizable=yes, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);

  // Puts focus on the newWindow
  if (window.focus) {
    newWindow.focus();
  }
}

用法:

<a href="#" onclick="PopupCenter('http://www.google.com','Window title','500','600'); return false;">Click</a>

2 个答案:

答案 0 :(得分:0)

尝试将这些用于宽度/高度,这个javascript支持所有浏览器:

var width = window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth;

var heigth = window.innerHeight
|| document.documentElement.clientHeight
|| document.body.clientHeight; 

这可能是因为它使用了body.clientHeight / body.clientWidth,但不是100%肯定。
希望这有帮助!

答案 1 :(得分:0)

经过大量调查后,似乎这个问题只发生在这个特定的MacBook上。这不是一般问题,所以我暂时关闭这个topis。