如何将浏览器内容的内容替换为xhr.responseText

How can I replace the content of the browsers content with the xhr.responseText

本文关键字:xhr responseText 替换 浏览器      更新时间:2023-09-26

我想使用javascript或jquery更改整个页面的内容,并显示ajax请求返回的404 html页面。这可能吗?如何?

使用DOMParserdocumentElement的内容替换为xhr.responseText

HTML源代码中的documentElement
var dom = (new DOMParser).parseFromString(xhr.responseText, 'text/html');
// any attribute setting on `document.documentElement` etc here, then
document.documentElement.innerHTML = dom.documentElement.innerHTML;
dom = null;

浏览器支持解析HTMLDOMParser

Google Chrome        30   +
Firefox              12   +
Internet Explorer    10   +
Opera                17   +
Safari                7.1 +

如果你需要支持传统的浏览器考虑而不是解析,从结尾搜索</html>字符串的开始为<html,找到接近的>,然后提取这两者之间的一切,然后被设置为innerHTML

可以使用最简单的$.ajax快捷方法load()

if( someCondition ){
    $('body').load('404.html');
}

这可能是你想要的,也可能不是,因为在问题

中意图不是完全明确的