如何使用xhr.responseText替换浏览器内容的内容

时间:2015-07-21 14:00:26

标签: javascript jquery

我想使用javacript或jquery更改整个页面的内容,并显示ajax请求返回的404 html页面。那可能吗?怎么样?

2 个答案:

答案 0 :(得分:1)

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

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

这可能是您正在寻找的,也可能不是,因为意图在问题中并不完全清楚

答案 1 :(得分:1)

使用DOMParser documentElement 的内容替换为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;

浏览器支持使用 DOMParser 解析 HTML

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

如果您需要支持旧版浏览器,请考虑而不是解析,从最后搜索</html>以及<html String 的开头,找到close {{ 1}}然后提取这两者之间的所有内容,然后将其设置为 innerHTML