2017-02-22 22 views
3

Я знаю, что этот вопрос задан раньше, но большинство ответов заменяют только тег body или нужен jQuery. Я хочу иметь возможность заменить все содержимое страницы , включая DOCTYPE, используя простой JavaScript. Кроме того, я не хочу перенаправлять страницу с помощью window.location.href. Возьмите эту простую страницу (index.html):Заменить все содержимое страницы (с помощью DOCTYPE)

<!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> 

Как это сделать?

+2

'document.write (page);' будет это делать. Есть ли причина, по которой вы не используете фреймворк ajax? Если вы должны использовать JQuery, вы можете сделать '$ ('html'). Html (page);' – Edward

+1

Возможный дубликат [Замена всей страницы, в том числе главы с использованием Javascript] (http://stackoverflow.com/questions/4292603/replacing -entire-page-including-head-using-javascript) –

+0

@AndyRay Я прочитал эту страницу, но я не думаю, что любой из этих методов также заменил DOCTYPE. –

ответ

0

Ничего. Я решил, что могу просто заменить содержимое в тегах <html>. Код, который я использовал, был:

var contents = "Sorry : (IMPORT FAILED..."; 
var file = new XMLHttpRequest(); 
file.open("GET", "/toload.html", false); 
file.onreadystatechange = function() { 
    contents = file.responseText; 
} 
file.send(null); 
document.getElementsByTagName("html")[0].innerHTML = contents; 

Спасибо за замечательные ответы!

2

Ближайший я могу получить это:

document.getElementsByTagName('html')[0].innerHTML=""; 

Ill обновление этот ответ, если я могу выяснить, почему вы не можете удалить корневой узел DOM в.