我正在尝试使用jQuery AJAX请求重新加载整个页面(向加载提供简单的GET参数),大致以这种方式。
$.ajax({
url: "site.php?param="+new_param,
cache: false,
success: function(content) {
$("html").html(content);
}
});
正如您所看到的,这将级联<html>
块,并且某种方式样式被破坏(背景突然变白等等)。
$(document).html(content);
之类的技巧也不起作用。
不幸的是,我还没有找到解决这个问题的方法。
答案 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文件中找到“背景”。