Это не дублирует вопрос по этим причинам:Как перезаписать весь документ с JavaScript
- Я спрашиваю о том, как заменить весь HTML-документ с JavaScript без JQuery или любых других фантазий расширений JavaScript , Некоторые из других вопросов, которые похожи на этот вопрос, касаются конкретных вещей, таких как AJAX или jQuery.
- Я не спрашиваю о том, почему
document.write()
только присоединяется к странице. Возможно, чистое решение JavaScript, которое я ищу, может включать эту функцию, но это может быть не только потому, что оно само по себе неадекватно.
Что я хочу сделать, это переписать веб-страницу, поскольку она отображается в браузере только с HTML. Функция document.write()
только добавляет любой аргумент, передаваемый ему в тело документа. Свойство document.documentElement.outerHTML
может быть прочитано, но в отличие от того, когда оно используется на дочерних элементах страницы, невозможно записать, и даже если бы это было возможно, это оставило бы DOCTYPE нетронутым.
Я работаю над букмарклетом, поэтому этот JavaScript не будет запущен на странице, то есть нет проблем с перезаписью скрипта во время его работы. Его также можно запустить в инструментах разработчика браузера.
В качестве примера предположим, что в моем браузере открыт about:blank
. Содержимое DOM будет выглядеть следующим образом:
<html>
<head></head>
<body></body>
</html>
Я хочу, чтобы иметь возможность переписать его с любой строкой я хочу. Так, например, я мог бы сделать его выглядеть следующим образом:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Example</title>
</head>
<body>
<p>This is an example.</p>
</body>
</html>
Как я могу добиться такого рода перезапись документа?
Из того, что я вижу, единственный способ сделать это - изменить каждый раздел. Я бы предположил, возможно, подумав о том, как реорганизовать ваш код. – Jhecht