我有 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 调用如何改变行为?有什么线索吗?