使用AJAX请求重新加载整个页面并更改GET参数

时间:2012-02-20 09:13:14

标签: javascript jquery ajax parameters get

我正在尝试使用jQuery AJAX请求重新加载整个页面(向加载提供简单的GET参数),大致以这种方式。

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

正如您所看到的,这将级联<html>块,并且某种方式样式被破坏(背景突然变白等等)。

$(document).html(content);之类的技巧也不起作用。

不幸的是,我还没有找到解决这个问题的方法。

2 个答案:

答案 0 :(得分:9)

如果你没有重新加载头部内容(加载新的javascript或css),并且我认为没有理由你应该做这样的事情,你应该真的尝试将内容加载到内容本身,即。 <body>

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

修改

为了实现,我认为您正在尝试,您可以查看https://github.com/defunkt/jquery-pjax

答案 1 :(得分:0)

加载完整HTML页面的问题在于,您只获取HTML代码,但JavaScript未被解释,并且CSS文件的路径变得混乱。 想象一下,如果您将:您在index.php文件中,并且CSS文件位于同一目录中。现在,如果您使用AJAX加载不同的HTML文件,并在div中输出该代码,则该文件可能指向“../css/random_dir/style.css”文件。现在你的index.php文件中的路径不好,这就是样式搞砸了的原因。 您的新代码可能会在未加载(并且不会加载)的css文件中找到“背景”。