Я не уверен, что «заменяет весь документ». Я заметил, что вы используете библиотеку jQuery Mobile. Если признак в том, что стиль или макет исчезают, я думаю, что проблема в jQuery Mobile.
jQuery Mobile автоматически изменит вашу структуру DOM. Если вы попытаетесь проверить элемент DOM в своем браузере, вы увидите что-то вроде:
<div data-role="page" data-url="/test.html" tabindex="0"
class="ui-page ui-body-c ui-page-active" style="min-height: 737px; ">
Some text
</div>
Если вы замените весь элемент body
, это определенно приведет к поломке jQuery Mobile.
С другой стороны, вам не нужно использовать функцию jQuery load
для запроса XHR. Пожалуйста, взгляните на это: http://jquerymobile.com/demos/1.0/docs/pages/page-links.html:
Чтобы включить анимированные переходы страниц, все ссылки, которые указывают на внешнюю страницу (например, products.html), будут загружаться через Ajax. Чтобы сделать это ненавязчиво, платформа анализирует href ссылки, чтобы сформулировать запрос Ajax (Hijax), и отображает счетчик загрузки. Все это происходит автоматически с помощью jQuery Mobile.
Если вы используете jQuery Mobile, вы должны следовать пути jQuery Mobile. В противном случае вы можете удалить jQuery Mobile и использовать свой собственный механизм XHR.