我有一个页面,我在另一个页面中使用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
的高度/宽度设置?
答案 0 :(得分:1)
有时在真正加载所有内容之前load
事件会触发(例如font-face声明),请尝试使用...
document.onreadystatechange = function() {
if (document.readystate === 'complete') {
var ww = window.innerWidth;
var wh = window.innerHeight;
}
}