开发者

$(document).width() includes scrollbar in ie8

I have the following webpage:

A tall webpage with only a vertical scrollbar and no horizontal scrollbar. The document and window therefore have the same width.

When I ask IE8 for $(document).width(), it returns the viewport width including the vertical scrollbar. FF returns the right answer.

I cannot use $('body') for this, because it returns the same width as the window object 开发者_运维技巧(it is set to 100% somehow, so it doesn't work when the page gets smaller).

How can I make IE8 output the right value? Thanks in advance.

UPDATE

I actually did some more testing to my problem. and I found that when the horizontal scrollbar becomes visible as well (because of a smaller window), IE8 DOES get the right size. So this makes my problem even more complicated because I can't set an ugly if(IE8)-hack.

UPDATE2

The problem lies in my CSS and jQuery. The actual case seems to be the problem: My css says:

body
{
    overflow-y:scroll;
}

IE8 doesn't count this as part of the body, but IE7 does. How to fix this? Call jQuery for a fix?


I put this problem to the jQuery crew: http://bugs.jquery.com/ticket/8048.

They don't think it's a bug. Their advice is to use $('body').width(). And this does indeed the job for me.

I still find it strange that the body in IE8 is adjusted to the scrollbar, but the $(document).width() stays the same. I used this jsFiddle for testing. It results in the same glitch, but jQuery thinks it's ok, because W3C doesn't say anything about it... Or something like that.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜