Перезагрузите всю страницу с AJAX-запросом и изменили параметры GET - PullRequest
3 голосов
/ 20 февраля 2012

Я пытаюсь перезагрузить всю страницу с помощью jQuery AJAX-запроса (предоставляя простой параметр GET для загрузки), примерно таким образом.

$.ajax({
    url: "site.php?param="+new_param,
    cache: false,
    success: function(content) {
        $("html").html(content);
    }
});

Как вы можете видеть, это будет каскадировать блоки <html>, и стили будут нарушены (фон внезапно станет белым и т. Д.).

Трюки типа $(document).html(content); тоже не сработают.

К сожалению, я пока не нашел решения этой проблемы.

Ответы [ 2 ]

9 голосов
/ 20 февраля 2012

Если вы не перезагружаете содержимое заголовка (загружаете новый javascript или css), и я не вижу причин, почему вы должны делать такие вещи, вы должны действительно попытаться ограничить загрузку вашего контента самим контентом, т.е. <body>.

$("body").html(content);

Редактировать

Чтобы достичь того, что, я думаю, вы пытаетесь сделать, вы можете проверить https://github.com/defunkt/jquery-pjax

0 голосов
/ 20 февраля 2012

Проблема с загрузкой полной HTML-страницы заключается в том, что вы получаете только HTML-код, но JavaScript не интерпретируется, а пути к файлам CSS запутываются. Представьте, если хотите: вы находитесь внутри файла index.php, а CSS-файлы находятся в одном каталоге. Теперь, если вы загружаете другой HTML-файл, используя AJAX, и выводите этот код в div, возможно, этот файл указывает на файл "../css/random_dir/style.css". Теперь этот путь не подходит для вашего файла index.php, и поэтому стиль испорчен. Ваш новый код ожидает найти «фон» внутри CSS-файла, который не загружен (и не будет загружен).

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