我的页面设计迫使我使用通过ajax加载的html刷新整个页面。
$('html').replaceWith(data);
给我错误。有什么想法吗?
答案 0 :(得分:22)
我有同样的问题,但这没有帮助。
如果您还需要替换<head>
标记(因此,整个页面),您也可以
document.write(newPage);
答案 1 :(得分:17)
使用body:
$('body').replaceWith(data);
答案 2 :(得分:9)
我遇到了一些问题
$("body").replaceWith(newPage)
给我一些奇怪的CSS问题,但这很好用:
$("body").html(newPage);
答案 3 :(得分:2)
jQuery.replaceWith和jQuery.html在使用&#39; body&#39;执行时的奇怪行为选择。在通话后你松开了身体标签:
$('body').replaceWith('<body>New body</body>');
任何其他选择器都不会发生:
$('title').replaceWith('<title>New title</title>');
jQuery.html也不会将body标记加倍(与其他标记一样),并在调用时像replaceWith一样运行:
$('body').html('<body>New body</body>');
我希望这不是jQuery的灰色区域。或者如果是,他们不会想到解决它。我有应用程序,我使用$(&#39; body&#39;)。html当$(&#39; body&#39;)。replaceWith应该被使用。
答案 4 :(得分:1)
这可能是您需要的解决方案,它取代整个文档,包括其头部。加载新的css,js&amp ;;你不会有任何问题。其他资源。我假设您通过调用REST API来接收新的html内容:
$.ajax({
type: 'POST',
url: form.attr('action'),
data: form.serialize(), // serializes form elements
success: function(response) {
// re-writes the entire document
var newDoc = document.open("text/html", "replace");
newDoc.write(response);
newDoc.close();
}
});