我有以下网页:
只有垂直滚动条而没有水平滚动条的高网页。因此,文档和窗口具有相同的宽度。
当我向 IE8 询问 $(document).width()
时,它返回包括垂直滚动条的视口(viewport)宽度。 FF 返回正确答案。
我不能为此使用 $('body')
,因为它返回与窗口对象相同的宽度(它以某种方式设置为 100%,因此当页面变小)。
怎样才能让IE8输出正确的值?提前致谢。
更新
我实际上对我的问题做了一些更多的测试。我发现当水平滚动条也变得可见时(因为窗口较小),IE8 确实获得了正确的大小。所以这让我的问题变得更加复杂,因为我无法设置一个丑陋的 if(IE8)
-hack。
更新2
问题出在我的 CSS 和 jQuery 上。 实际案例似乎有问题: 我的 CSS 说:
body
{
overflow-y:scroll;
}
IE8 不将其视为正文的一部分,但 IE7 会将其视为正文的一部分。如何解决这个问题?调用 jQuery 进行修复?
最佳答案
我把这个问题交给了 jQuery 团队:http://bugs.jquery.com/ticket/8048 .
他们不认为这是一个错误。他们的建议是使用 $('body').width()
。这确实适合我。
我还是觉得奇怪,IE8中的body调整到了滚动条,但是$(document).width()
保持不变。我用过这个jsFiddle供测试用。它会导致同样的故障,但 jQuery 认为没关系,因为 W3C 没有对此做出任何说明...或者类似的东西。
关于javascript - $(document).width() 包括 ie8 中的滚动条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4091107/