我的页面设计迫使我使用通过 ajax 加载的 html 刷新整个页面。
$('html').replaceWith(data);
给我错误。有任何想法吗?
我的页面设计迫使我使用通过 ajax 加载的 html 刷新整个页面。
$('html').replaceWith(data);
给我错误。有任何想法吗?
我有同样的问题,但这没有帮助。如果您还需要替换<head>
标签(所以,整个页面),您也可以这样做
document.write(newPage);
使用身体:
$('body').replaceWith(data);
我有一些问题
$("body").replaceWith(newPage)
给了我一些奇怪的css问题,但这很好用:
$("body").html(newPage);
这可能是您需要的解决方案,它替换了整个文档,包括它的 head。加载新的 css、js 和其他资源不会有任何问题。我假设您通过调用 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();
}
});
使用“body”选择器执行时 jQuery.replaceWith 和 jQuery.html 的奇怪行为。您在通话后松开 body 标签:
$('body').replaceWith('<body>New body</body>');
任何其他选择器都不会发生这种情况:
$('title').replaceWith('<title>New title</title>');
jQuery.html 也不会加倍 body 标签(就像它对其他标签所做的那样),并且在像这样调用时像 replaceWith 一样操作:
$('body').html('<body>New body</body>');
我希望这不是 jQuery 的灰色地带。或者,如果是,他们不认为要修复它。我有应用程序,当应该使用 $('body').replaceWith 时,我使用 $('body').html。