В Chrome размер страницы не изменяется после загрузки Ajax - PullRequest
8 голосов
/ 08 июня 2011

Я лихорадочно прочесывал свой последний этап сайта, который я строю, и сталкиваюсь со странной странностью только с Chrome.FF и IE, кажется, работают нормально.

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

Вот как выглядит тело страницы, в которую загружаются заглушки:

<body>
  <div id="page">
    <div id="mainWrapper">
       <div id="headerFullWidth"></div>
       <div id="fixedwidthcontainer">
         <div id="header">
            <div id="logo"><img src="images/logo.png" height="85px" width="187px"></div>
            <div id="shoppingcart"></div>
          </div>
          <div id="shoppingCartIcon"></div>
       </div>
       <div class="contentSpacer"></div>
       <div id="contentwrapper">
          <div id="content"></div>
       </div>
       <div class="contentSpacer"></div>
       <div id="footer">
          <div id="footerContent">
             <a href="#contactPopupContent" id="contactfooter">Contact Us</a><a href="#privacyPopupContent" id="privacyfooter">Privacy Policy</a><a href="#shippingPopupContent" id="shippingfooter">Shipping & Returns</a>
             <div id="copyrightfooter">&copy; 2011 Victory Barbers and Brand</div>
          </div>
        </div>
        <div id="fullWidthFooter"></div>
      </div>
    </div>
  </div>
</body>

Все мои загрузки выполняются с использованием jQuery load() и у меня была итерация сайта, у которой не было этой проблемы.Я перешел к стилю ширины более 100%, и эта проблема возникла в процессе.

Мой вопрос таков: есть ли способ заставить страницу перепроверить свой размер при переходе на другой / более короткийсодержание

Ответы [ 7 ]

3 голосов
/ 03 мая 2013

Я думаю Я нашел решение для этого. (По крайней мере, я не видел, чтобы это случилось за несколько минут). В обратном вызове .ajax после установки содержимого с помощью $('div').html(data); я изменяю размер всего окна с помощью $(window).resize();

1 голос
/ 26 июня 2011

Я смог это исправить на самом деле только с помощью CSS. проблема заключалась в том, что я поместил абсолютный элемент обертки страницы так, чтобы он находился вне потока элементов тела. Я удалил позицию: абсолют; верх: 0; Слева направо: 0; и просто поставить границу: 0; и отступы: 0; на элементе тела.

1 голос
/ 25 июня 2011

Точно такая же проблема, с которой я столкнулся, и ответ, который я получил, - нет.

Мне удалось исправить это только путем проверки высоты нового div с новым содержимым после загрузки AJAX и установки правильноговысота с помощью jQuery.

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

0 голосов
/ 11 апреля 2012

asyncBoolean

По умолчанию: true

По умолчанию все запросы отправляются асинхронно (т. Е. По умолчанию установлено значение true).Если вам нужны синхронные запросы, установите для этого параметра значение false.Междоменные запросы и dataType: запросы "jsonp" не поддерживают синхронную работу.Обратите внимание, что синхронные запросы могут временно блокировать браузер, отключая любые действия, когда запрос активен. "

0 голосов
/ 04 апреля 2012

Вы можете использовать css для решения:

#myDiv{max-height:value; overflow:auto;}
0 голосов
/ 08 ноября 2011

Если толчок приходит к толчку, вы всегда можете форсировать высоту после загрузки с помощью некоторого JavaScript.

Я стараюсь держаться как можно дальше от position:absolute.

0 голосов
/ 06 июля 2011

Это должно быть чисто проблема CSS, я сам не использовал jQuery для AJAX, но когда вызывается контент, вы используете это?

document.getElementById('myDiv').innerHTML=myResult

или вы используете jQuery

$('#myDiv').html(myResult);

$('#myDiv').append(myResult);

если вы используете jQuery, вы должны сначала очистить div, например:

$('#myDiv').html('');
$('#myDiv').html(myResult);

А если это не поможет, вы можете использовать фиксированную высоту и использовать свойство css переполнения

     #myDiv {
       height:600px
       overflow:auto;
     }

Конечно, фиксированная высота - это не всегда лучшее решение, но оно может вам помочь.

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