Chrome: window.innerHeight is 等于 window.outerHeight?为什么?



我有JS,它使用window.open打开一个新窗口。窗口的大小在传递给打开函数的窗口功能字符串中设置。 下面是字符串在运行时的外观。

width=650,
height=350,
toolbar=no,
directories=no,
status=no,
menubar=no,
scrollbars=yes,
resizable=yes,
modal=yes,
left=321,
top=209

您可以在此处看到高度设置为 350。

在 window.open 调用之后,返回的句柄用于再次将窗口大小调整为 350 的高度。

所以基本上我们有

v_window = window.open(url, name, windowFeatures);
v_window.resizeTo(width, height);

现在,在打开的窗口中,我们有调整窗口大小的javascript。窗口从元数据表中获取大小并调整自身大小。 调整大小计算使用window.outerHeightwindow.innerHeight。 但看起来它们都返回相同的值 350。为什么会这样? 由于地址栏和窗口标题是可见的,外部高度不应该大于内部高度吗?

我还注意到,如果在父窗口中删除resizeTo调用,则子窗口中的 outerHeight 和 innerHeight 值是正确的。 调整大小到调用如何更改行为?有线索吗?

这并没有真正的帮助,但我相信你的分析是正确的:Chrome目前在这方面有问题。 如果你想为这个错误加注星标,我已经在 https://crbug.com/823588#c4 中记录了一些事情。

最新更新