Internet Explorer 7 и 8 усечение контента сайта - PullRequest
2 голосов
/ 11 июля 2010

Я провел несколько дней с этой проблемой, и я не могу найти решение где-либо, и это сводит меня с ума.

Я создал веб-страницу, которая загружает весь ее контент динамически и дляпо какой-то причине контент усекается в IE 7 и 8. Хотя он отлично работает в Firefox и Opera.

Контент больше, чем размер окна, и IE обрезает контент, поэтому вертикальная полоса прокрутки не включена.Я попытался свернуть окно до меньшего размера, и кажется, что IE отображает только то содержимое, которое умещается внутри окна, а все остальное содержимое вообще не создается, так как я развернул окно до максимума после обновления, и он показывает только часть страницы, котораяподходит для меньшего окна.

Если вы хотите взглянуть на мою проблему, вы можете перейти здесь , затем войти в систему как admin / alalcoalalco и после того, как вы вошли в систему, нажмите «Администрация»."ссылки в меню и уменьшайте высоту вашего браузера IE, пока половина таблицы не уместится в окне.Затем обновите страницу и после увеличения окна вы увидите, что браузер отображает только то, что умещается в окне, когда оно меньше.Если вы сделаете то же самое в Opera и Firefox, это будет отлично работать.

Есть идеи?Все будет по достоинству оценено.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 11 июля 2010

Я думаю, что проблема в ваших CenterWindow и CloseWindow функциях в common.js:

function CenterWindow(controlMain, controlWindow)
{
    var windowWidth = document.documentElement.clientWidth;
    var windowHeight = document.documentElement.clientHeight;
    var popupHeight = controlWindow.height();
    var popupWidth = controlWindow.width();

    controlWindow.css(
        {
            "position": "absolute",
            "top": windowHeight / 2-popupHeight / 2,
            "left": windowWidth / 2-popupWidth / 2
        });

    controlMain.css(
        {
            "height": windowHeight
        });
} 

function CloseWindow(controlMain, controlWindow)
{   
    controlMain.css(
        {
            "opacity": "1"
        });

    controlWindow.fadeOut('fast');
    controlMain.fadeIn('fast');    
}

При загрузке страницы вызывается CenterWindow (через OpenWindow), чтобы показатьdiv, содержащий сообщение «Загрузка».Позже, CloseWindow вызывается для удаления этого div 'Loading'.В конце CenterWindow вы устанавливаете высоту controlMain (которая является div с id divMain) равной высоте окна браузера.Однако CloseWindow не восстанавливает высоту элемента divMain до того, который был до открытия элемента 'Загрузка'.

Исправлено добавление строк

    controlMain.css(
        {
            "height": ""
        });

в конец CloseWindow.Это удаляет временную высоту, установленную на divMain.

Я не могу объяснить, почему только IE7 / IE8 демонстрирует такое поведение.Однако я смог воспроизвести вашу проблему и убедиться, что мое предложение устраняет ее.

0 голосов
/ 11 июля 2010

Я использовал инструмент валидатора, и документ кажется действительным для HTML и CSS. Я нашел простой способ взглянуть на ошибку на сайте, так как я обнаружил, что это происходит со всеми страницами, а не только с той, что я сказал вам. Даже со страницами со статическим содержимым.

Перейдите на http://www.almaxsoft.com/importec/index.php (эта страница содержит только статическое содержимое), и после загрузки страницы уменьшите высоту браузера IE 7 или 8, а затем обновите страницу. Вы увидите, что окно проводника никогда не включает вертикальную полосу прокрутки, поскольку оно отображает только то содержимое, которое соответствует окну, как показано на рисунке ниже:

error1.JPG

После того, как я развернул окно, я вижу, что контент обрезан, и по этой причине полоса прокрутки не включена, как на следующем рисунке:

error2.JPG

Поскольку я новый пользователь, я не могу публиковать изображения или более одной ссылки в одном сообщении, поэтому я опубликую репозиторий изображений в новом ответе, чтобы вы могли их проверить.

Есть идеи? Я мог бы действительно использовать некоторую помощь.

Спасибо!

...