Window.open浏览器的高度不一致

时间:2016-04-15 21:18:19

标签: javascript html css

我正在尝试使用此JS代码创建一个简单的弹出窗口:

window.open(this.href,"popupwindow", "width=400,height=545,innerHeight=500, left=200,top=5,scrollbars,toolbar=0,resizable");

生成的弹出窗口显示不同浏览器的不同高度。我在不同浏览器上通过控制台检查了window.innerHeight,结果就是这样:

safari:window.innerHeight = 455

chrome:window.innerHeight = 500

IE:window.innerHeight = 549

Firefox:window.innerHeight = 544

以下是JSFiddle链接。

我需要弹出高度为500px的弹出窗口。我如何在所有浏览器中执行此操作。

2 个答案:

答案 0 :(得分:2)

打开后调整窗口大小可以获得更好的尺寸精度:

var win = window.open("about:blank" "popupwindow",  // about:blank for demo
  "width=400,height=500,left=200,top=5,scrollbars,toolbar=0,resizable");
// adjust size;
win.resizeBy( 400 - win.innerWidth, 500-win.innerHeight);

请求400 x 500像素的窗口,然后调整内容区域的大小以确保。在浏览器之间处理甚至识别innerHeight和width设置可能会有所不同。

<强> 然而

弹出窗口受用户首选项和弹出窗口阻止程序的限制。例如,我将IE设置为在新选项卡中打开弹出窗口(上面的代码不会打开新窗口),Firefox总是包含位置栏,并将任何设置为绕过弹出窗口阻止程序的网站视为恶意。您可能希望提请那些设定要求的人注意。

答案 1 :(得分:0)

window.open(this.href,"popupwindow", "width=400,innerHeight=500,left=200,top=5,scrollbars,toolbar=0,resizable");

您无法预测窗口的高度。它取决于用户偏好。 但是你只需要innerHeight