我有一个页面,我使用另一个页面的 window.open 作为弹出窗口打开;此时,window.open
调用为弹出页面指定给定的高度和宽度。
在弹出页面中,我使用window.innerHeight
和window.innerWidth
(以及类似的跨浏览器兼容性)检测可用的屏幕尺寸。
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);
我遇到的问题是我有时会遇到高度/宽度检测的时间问题;在某些情况下,返回的高度/宽度不是弹出窗口设置的值,而是一些其他值(它看起来像打开窗口的值)。
似乎window.innerHeight
在强制执行弹出窗口的高度/宽度设置之前检测到。
通常,在弹出窗口中,我会检测window.onload
函数中的高度和宽度。我相信这可能是一个时间问题,因为如果我添加 30 毫秒的超时延迟,问题就会消失,而延迟更短,问题可能仍然会发生。
问题:在打开的窗口中是否有一个事件可以确保我window.open
已应用开瓶器的高度/宽度设置?