在IE中获取整个浏览器的宽度/高度?

4

有没有人知道获取整个浏览器窗口的宽度/高度(包括导航栏、菜单等)的Javascript调用方法?

我知道在Firefox、Safari和其他浏览器中有outerWidthouterHeight

5个回答

3

这也可能会有所帮助,具体取决于您试图实现什么:

window.moveTo(0,0); window.resizeTo(screen.width,screen.height); var navButtonsEtcHeight = screen.height - window.innerHeight; var navButtonsEtcWidth = screen.width - window.innerWidth;

注意:对于"window.innerHeight"支持的浏览器无关解决方案,请参见此链接

然后你就得到了你要找的答案——请注意,非全屏用户会首先看到他们的窗口在屏幕上跳来跳去的缺点。


不幸的是,在IE中window.resizeTo不再可靠。例如,如果启用了选项卡浏览,则无法正常工作。 - Tim Down

2

这是DreadPirateShawn答案的变体。已在IE7和Chrome8上测试通过。最初出现在Experts Exchange

function getWindowSize() {
    var wW, wH;
    if (window.outerWidth) {
        wW = window.outerWidth;
        wH = window.outerHeight;
    } else {
        var cW = document.body.offsetWidth;
        var cH = document.body.offsetHeight;
        window.resizeTo(500,500);
        var barsW = 500 - document.body.offsetWidth;
        var barsH = 500 - document.body.offsetHeight;
        wW = barsW + cW;
        wH = barsH + cH;
        window.resizeTo(wW,wH);
    }
    return { width: wW, height: wH };
}

这个函数创建了6个全局变量,这并不是你想要的。而且最好先检查window.outerWidth/outerHeight,而不是检查document.all,这样会更清晰。 - Andrew Childs

1

0

我相信这就是你想要的

document.body.offsetWidth
document.body.offsetHeight

这仍然给我浏览器的内部高度(仅页面)。我想要包括导航、按钮等所有内容。 - Robert Pasbani
1
我不相信这是可能的。 - Ian Elliott
实际上,你可能可以。因为window.screen.availHeight给出了屏幕高度减去任务栏的高度。所以如果你做一些减法,你可能能够计算出导航栏和选项卡的大小,假设窗口是正常的,完全铺满边缘。然后,一旦你有了导航栏和选项卡栏的大小(高度),你就可以将其加到或从任何你想要的地方减去。IE到底怎么回事,不提供屏幕尺寸信息? - Erx_VB.NExT.Coder

-1

我认为你可以使用

width: window.outerWidth
height: window.outerHeight

您可以使用 jQuery,这样在 IE 中就不会出现未定义的情况。您可以先尝试获取屏幕尺寸,然后使用浏览器的尺寸来计算精确的大小。

doc: http://docs.jquery.com/Plugins/dimensions/outerHeight


-1 这不是他想要的。jQuery 的 OuterHeight/Width 包括边框和填充 (http://docs.jquery.com/CSS/outerHeight),但他想要包括导航、按钮等。 - Gabe Moothart

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接