获取开启窗口的窗口大小(IE)

时间:2009-07-17 17:33:29

标签: javascript html internet-explorer

对于FF和其他非IE浏览器,window.opener.outerWidth / Height为我提供了我需要的信息。对于IE,我仍然处于亏损状态,从IE6到8.我不能使用jquery因为开启者的页面超出了我的控制范围,所以我不能做一个window.opener。$(窗口)。这需要开启者将jquery'附加'(如果我错了,请纠正我)。

我用谷歌搜索了一下也搜索了这个网站,仍然找不到一个明确的答案。

添加: 我真的需要外部大小,以便我可以为打开的窗口执行resizeTo(w,h),其中w和h是根据开启者大小的比率计算的。 “resizeTo”具有讽刺意味的是为IE和其他浏览器设置外部大小。我也尝试过使用resizeBy的乱码,但还不够好。

1 个答案:

答案 0 :(得分:3)

outerWidthouterHeight定义浏览器窗口的尺寸(包括侧边栏,窗口镶边和窗口[重新调整边框/手柄大小])。不幸的是,你无法在IE中获得这些尺寸 - 只有窗口视口尺寸可用(对于我见过的大多数应用程序来说已经足够了)。阿卡window.innerWidth/window.innerHeight

jQuery可以为您提供当前窗口视口的尺寸,但不能提供其他窗口(例如,开启者,儿童等)。所以你必须自己编写代码。这是一个粗略的样本:

// get viewport size (without scrolling) of the given window object
function clientSize(win) {
    var width, height;

    if(win.innerWidth || win.innerHeight) {
        width = win.innerWidth;
        height = win.innerHeight;
    } else {
        var doc = win.document;
        width = doc.documentElement.clientWidth || doc.body.clientWidth;
        height = doc.documentElement.clientHeight || doc.body.clientHeight;
    }

    return { width:width, height:height }
}

尝试如下:

var openerSize = clientSize(window.opener); 
// now use openerSize.width, openerSize.height

另请注意,如果给定窗口已从其他域加载文档(安全措施),则无法读取任何这些值。