11

我的页面设计迫使我使用通过 ajax 加载的 html 刷新整个页面。

$('html').replaceWith(data);

给我错误。有任何想法吗?

4

5 回答 5

28

我有同样的问题,但这没有帮助。如果您还需要替换<head>标签(所以,整个页面),您也可以这样做

document.write(newPage);
于 2013-10-30T18:12:01.697 回答
18

使用身体:

$('body').replaceWith(data);
于 2009-04-27T13:15:34.383 回答
10

我有一些问题

$("body").replaceWith(newPage)

给了我一些奇怪的css问题,但这很好用:

$("body").html(newPage);
于 2011-10-24T10:08:51.383 回答
8

这可能是您需要的解决方案,它替换了整个文档,包括它的 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();
  }
});
于 2018-04-28T09:49:12.657 回答
2

使用“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。

于 2016-07-12T20:49:12.530 回答