我知道这个问题以前被问过,但大多数答案只是替换了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>
我该怎么做?
document.write(page);
will do it. Is there any reason your not using an ajax framework? If you were to use JQuery you could do$('html').html(page);
- Edwarddocument.write(page);
显然不具备完整的浏览器兼容性。 - Nobodydocument.write
是最早添加到DOM的功能之一。你在哪里发现了有限的兼容性问题?否则,你必须手动构建DOM,使用像这样的DOM方法:https://dev59.com/bmsy5IYBdhLWcg3w6yUN - Heretic Monkey