Javascript Chrome:window.innerHeight等于window.outerHeight?为什么?
我有一个JS,它使用Javascript Chrome:window.innerHeight等于window.outerHeight?为什么?,javascript,google-chrome,window-resize,outerheight,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后,返
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调用如何改变行为?有线索吗?这并没有真正的帮助,但我相信你的分析是正确的:Chrome目前在这方面存在缺陷。我已经在《如果你想启动那个bug》中记录了一些东西。有人帮忙吗?这是两年前报道的,但仍然没有修复???启动了它。谢谢你把bug归档。目前,如果浏览器是chrome,我们已经通过删除父窗口中的“resizeTo”调用解决了这个问题。难看,是的,但它很管用。