$ (document) .width () включает полосу прокрутки в ie8 - PullRequest
1 голос
/ 03 ноября 2010

У меня есть следующая веб-страница:

Высокая веб-страница с вертикальной полосой прокрутки и без горизонтальной полосы прокрутки. Поэтому документ и окно имеют одинаковую ширину.

Когда я запрашиваю IE8 для $(document).width(), он возвращает ширину области просмотра, включая вертикальную полосу прокрутки. ФФ возвращает правильный ответ.

Я не могу использовать $('body') для этого, потому что он возвращает ту же ширину, что и объект окна (он каким-то образом установлен на 100%, поэтому он не работает, когда страница становится меньше).

Как я могу заставить IE8 выводить правильное значение? Заранее спасибо.

UPDATE

Я действительно провел еще несколько тестов для своей проблемы. и я обнаружил, что когда горизонтальная полоса прокрутки становится видимой (из-за меньшего размера окна), IE8 получает правильный размер. Так что это делает мою проблему еще более сложной, потому что я не могу установить отвратительный if(IE8) -хак.

UPDATE2

Проблема заключается в моем CSS и jQuery. Фактический случай, кажется, проблема: Мой CSS говорит:

body
{
    overflow-y:scroll;
}

IE8 не считает это частью тела, но IE7 делает. Как это исправить? Позвоните в jQuery для исправления?

1 Ответ

1 голос
/ 27 января 2011

Я поставил эту проблему перед командой jQuery: http://bugs.jquery.com/ticket/8048.

Они не думают, что это ошибка.Их совет должен использовать $('body').width().И это действительно работает для меня.

Мне все еще странно, что тело в IE8 настроено на полосу прокрутки, но $(document).width() остается прежним.Я использовал это jsFiddle для тестирования.Это приводит к тому же самому сбою, но jQuery считает, что это нормально, потому что W3C ничего об этом не говорит ... Или что-то в этом роде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...