对于FF和其他非IE浏览器,window.opener.outerWidth / Height为我提供了我需要的信息。对于IE,我仍然处于亏损状态,从IE6到8.我不能使用jquery因为开启者的页面超出了我的控制范围,所以我不能做一个window.opener。$(窗口)。这需要开启者将jquery'附加'(如果我错了,请纠正我)。
我用谷歌搜索了一下也搜索了这个网站,仍然找不到一个明确的答案。添加: 我真的需要外部大小,以便我可以为打开的窗口执行resizeTo(w,h),其中w和h是根据开启者大小的比率计算的。 “resizeTo”具有讽刺意味的是为IE和其他浏览器设置外部大小。我也尝试过使用resizeBy的乱码,但还不够好。
答案 0 :(得分:3)
outerWidth
和outerHeight
定义浏览器窗口的尺寸(包括侧边栏,窗口镶边和窗口[重新调整边框/手柄大小])。不幸的是,你无法在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
另请注意,如果给定窗口已从其他域加载文档(安全措施),则无法读取任何这些值。