document javascript.innerHTML définir le contenu du document entier
Comment puis-je définir le innerHTML, ou tout le contenu D'un document HTML en utilisant javascript?
Par exemple, mon document ressemblerait à ceci:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-language" content="en"/>
<title>Webpage Generator</title>
<script type="text/javascript">
var newDocument = "<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" nt"http://www.w3.org/TR/html4/loose.dtd">n<html>n<head>nt<title>Greetings!</title>n</head>n<body>nt<p>Howdy!</p>n</body>n</html>";
document.innerHTML = newDocument;
</script>
</head>
<body>
</body>
</html>
Mais le navigateur chargerait le code HTML suivant:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Greetings!</title>
</head>
<body>
<p>Howdy!</p>
</body>
</html>
4 réponses
Si vous ne voulez pas utiliser innerHTML, vous pouvez utiliser document.write(newDocument);.
Si le document n'est pas complètement chargé, vous devrez également mettre document.open() (Merci bažmegakapa).
document.innerHTML est nouveau en HTML5 et n'est pas pris en charge dans tous les navigateurs.
document.documentElement fait référence à l'élément racine de votre document, qui dans ce cas est l'élément <html>.
Donc, vous pouvez définir document.documentElement.innerHTML. Notez que puisque le DOCTYPE tombe en dehors de cela, il n'est donc pas nécessaire de l'inclure dans le innerHTML.
Exemple (essayez d'exécuter ceci dans la console JS de votre navigateur):
document.documentElement.innerHTML = '<title>Test</title><p>LOLWAT';
Mise à jour: document.innerHTML déplacé de la spécification HTML à L'analyse DOM et Spécification de sérialisation , et plus tard a été supprimé. L'alternative suggérée est d'utiliser DOMParser :
var doc = (new DOMParser).parseFromString('<!doctype html><title>wat</title>', 'text/html');
Malheureusement, au moment de l'écriture, la plupart des navigateurs ne supportent pas encore cela pour HTML.
Utilisez ce code (après le chargement du document actuel):
document.open("text/html", "replace");
document.write(htmlCode); // htmlCode is the variable you called newDocument
document.close();
Live exemple ici : http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_doc_open
Espérons que cette aide ;)
Simple:
document.body.parentElement.innerHTML = '<html><body><div>Your code</div></body></html>';
Notez qu'il n'interprétera pas le code JS intégré dans votre code html.