$(document).width()包括ie8中的滚动条

时间:2010-11-03 19:57:45

标签: javascript jquery internet-explorer-8

我有以下网页:

只有垂直滚动条且没有水平滚动条的高大网页。因此文档和窗口具有相同的宽度。

当我向IE8询问$(document).width()时,它会返回包含垂直滚动条的视口宽度。 FF返回正确答案。

我不能使用$('body'),因为它返回与窗口对象相同的宽度(它以某种方式设置为100%,因此当页面变小时它不起作用。)

如何让IE8输出正确的值?提前谢谢。

更新

我实际上对我的问题做了一些测试。我发现当水平滚动条也变得可见时(由于窗口较小),IE8的尺寸合适。所以这使我的问题变得更加复杂,因为我无法设置一个丑陋的if(IE8) - 黑客。

UPDATE2

问题在于我的CSS和jQuery。 实际情况似乎是问题: 我的css说:

body
{
    overflow-y:scroll;
}

IE8并不算作身体的一部分,但IE7确实如此。如何解决这个问题?调用jQuery进行修复?

1 个答案:

答案 0 :(得分:1)

我把这个问题交给jQuery工作人员:http://bugs.jquery.com/ticket/8048

他们认为这不是一个错误。他们的建议是使用$('body').width()。这确实是我的工作。

我仍然觉得奇怪的是,IE8中的主体已调整为滚动条,但$(document).width()保持不变。我用这个jsFiddle进行测试。它会产生同样的故障,但是jQuery认为没关系,因为W3C没有说出任何关于它的东西......或类似的东西。