Javascript Clear DOM - PullRequest
       0

Javascript Clear DOM

7 голосов
/ 23 июля 2011

Я хочу полностью очистить DOM с помощью Javascript.

Я пробовал несколько вещей, таких как:

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

Интересно, что при такой очистке головки в IE будет возникать ошибка («недопустимый целевой элемент для этой операции»), но в Chrome она будет успешно очищена. Тем не менее, очистка тела, как это работает в IE, но молча завершается неудачей в Chrome.

я тоже пробовал

document.childNodes.length = 0;

но это, по-видимому, свойство только для чтения и ничего не будет делать.

Есть ли хороший кросс-браузерный способ очистки DOM?

Ответы [ 5 ]

12 голосов
/ 23 июля 2011

Это работает ...

document.removeChild(document.documentElement);

jsFiddle .

Обратите внимание, что браузер оставит тип документа без изменений.

2 голосов
/ 10 августа 2011

Несмотря на то, что Opera не поддерживает кросс-браузер, свойство outerHTML доступно для записи.

document.documentElement.outerHTML = "";
2 голосов
/ 23 июля 2011

Настройка document innerHTML официально поддерживается в HTML5 , но не в HTML4.

Это должно работать в HTML4:

var html = document.documentElement;
while(html.firstChild){
    html.removeChild(html.firstChild);
}
2 голосов
/ 23 июля 2011

вот полезный пример, не идеальный, но можно использовать

/**
 * clear child nodes
 * @param {HTMLElement} node
 */
    clearChildren : function(node) {
        if (!node) {
            return;
        }
        if(node.innerHTML){
            node.innerHTML = '';
            return;
        }
        while (node.childElementCount > 0) {
        var child = node.childNodes.item(0);
        if(isIE){
            child.onmousedown = null;
            child.onmouseover = null;
            child.onmouseout = null;
            child.onclick = null;
            child.oncontextmenu = null;
        }
        node.removeChild(child);
    }
    }
1 голос
/ 22 января 2017

Это может быть намного проще

document.write();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...