我有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.outerHeight
和window.innerHeight
。
但看起来他们两个都返回350的相同值。为什么会这样?
因为地址栏和窗口标题是可见的,所以outerHeight不应该超过innerHeight吗?
另外我注意到如果在父窗口中删除resizeTo
调用,则子窗口中的outerHeight和innerHeight值是正确的。
resizeTo调用如何改变行为?任何线索?
答案 0 :(得分:0)
它并没有真正帮助,但我相信您的分析是正确的:Chrome目前在这方面存在问题。我想在https://crbug.com/823588#c4中记录一些事情,如果你想为这个错误做好准备。