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

标签 javascript jquery internet-explorer-8

我有以下网页:

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

当我向 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/

相关文章:

javascript - 拉拉维尔 : How to get anchor tag value in variable and use this variable in the input field?

javascript - 使用 JavaScript 隐藏特定的 HTML 表格单元格

javascript - 如何使用 JQuery 从相对元素获取 html 文本?

jquery - IE7 和 8 不触发附加在表内的元素的 jQuery 单击事件

image - 有人可以验证这是 IE8 内存泄漏吗?

javascript - Internet Explorer 的条件文档类型

javascript - 如何创建从不读取 $scope 的 $scope 函数?

javascript - 重复在 2D Canvas 上绘制图案的方法

javascript - jQuery 代码完成样式文本框输入

javascript - ng test --code-coverage 不打印覆盖率详细信息