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

时间:2018-04-10 07:08:37

标签: javascript google-chrome window-resize outerheight

我有JS,它使用window.open打开一个新窗口。窗口的大小在传递给open函数的windowFeatures字符串中设置。 这是字符串在运行时的显示方式。

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的相同值。为什么会这样? 因为地址栏和窗口标题是可见的,所以outerHeight不应该超过innerHeight吗?

另外我注意到如果在父窗口中删除resizeTo调用,则子窗口中的outerHeight和innerHeight值是正确的。 resizeTo调用如何改变行为?任何线索?

1 个答案:

答案 0 :(得分:0)

它并没有真正帮助,但我相信您的分析是正确的:Chrome目前在这方面存在问题。我想在https://crbug.com/823588#c4中记录一些事情,如果你想为这个错误做好准备。