Javascript 检测window.innerHeight时出现计时问题

Javascript 检测window.innerHeight时出现计时问题,javascript,Javascript,我有一个页面,我打开作为一个弹出窗口使用窗口。从另一个页面打开;此时,window.open调用指定弹出页面的给定高度和宽度 在弹出页面中,我使用window.innerHeight和window.innerWidth检测可用的屏幕大小(对于交叉浏览器兼容性类似) 如果使用以下方法打开弹出窗口,此操作有时会失败: newHeight = 400; newWidth = 400; window.open("popup.html", "", "height=" + newHeight + ",w

我有一个页面,我打开作为一个弹出窗口使用窗口。从另一个页面打开;此时,
window.open
调用指定弹出页面的给定高度和宽度

在弹出页面中,我使用
window.innerHeight
window.innerWidth
检测可用的屏幕大小(对于交叉浏览器兼容性类似)

如果使用以下方法打开弹出窗口,此操作有时会失败:

newHeight = 400; 
newWidth = 400; 
window.open("popup.html", "", "height=" + newHeight + ",width=" + newWidth);
我遇到的问题是,我有时会遇到高度/宽度检测的计时问题;在某些情况下,返回的高度/宽度不是弹出窗口设置的高度/宽度,而是其他一些值(看起来像打开窗口的值)

它看起来像是
窗口。在强制执行弹出窗口的高度/宽度设置之前,会检测到innerHeight

通常,在弹出窗口中,我在
窗口中检测高度和宽度。onload
功能。 我认为这可能是一个时间问题,因为如果我添加30毫秒的超时延迟,问题就会消失,如果延迟更短,问题仍然可能发生


问题:在打开的窗口中是否有一个事件可以确保已应用了打开者的
窗口的高度/宽度设置。open

有时在真正加载所有内容(例如字体面声明)之前,
加载事件会触发,请尝试

document.onreadystatechange = function() {
  if (document.readystate === 'complete') {
     var ww = window.innerWidth; 
     var wh = window.innerHeight;
  }
}

我不明白你的答案。我应该在哪里使用CalculateWindDimensions?每次打开弹出窗口时,都会计算窗口尺寸,而不是在window.onload上计算。如果需要定制答案,请发布当前代码。在我的弹出窗口中:`window.onload=function(){…if(window.innerWidth&&window.innerHeight){ww=window.innerWidth;wh=window.innerHeight;}`如果打开弹出窗口,使用以下命令有时会失败:`newHeight=400;newWidth=400;window.open(“popup.html”、“”、”height=”+newHeight+”,width=“+newWidth)59我的回答。让我知道它是否对你有效。谢谢你的建议。尽管它看起来像google chrome的一个bug,但我隔离了一个chrome失败的例子,并且可以与其他所有人一起使用。请参阅(使用onreadystatechange也无法与chrome一起使用)。
document.onreadystatechange = function() {
  if (document.readystate === 'complete') {
     var ww = window.innerWidth; 
     var wh = window.innerHeight;
  }
}