我知道之前已经问过这个问题,但大多数答案只替换了body标签,或者需要jQuery。我希望能够使用纯JavaScript替换整个页面内容,包括DOCTYPE 。另外,我不想使用window.location.href
重定向页面。拿这个简单的页面(index.html):
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<p>Testing...</p>
</body>
</html>
使用AJAX加载另一页后:
var page;
var file = new XMLHttpRequest();
file.open('GET', './toload.html');
file.onreadystatechange = function() {
page = file.responseText;
}
file.send();
我想删除当前页面内容并显示toload.html
的内容,即:
<!DOCTYPE html>
<html>
<head>
<title>Loaded</title>
</head>
<body>
<p>Hello. This page is now loaded!</p>
</body>
</html>
我该怎么做?
答案 0 :(得分:2)
我能得到的最接近的是:
document.getElementsByTagName('html')[0].innerHTML="";
如果我能找出无法清除DOM根节点的原因,请更新此答案。