7
votes

JavaScript Effacer Dom

Je veux bien effacer le DOM avec JavaScript.

J'ai essayé quelques choses, comme ceci: xxx

intéressant, effacer la tête comme celle-ci Générez une erreur («Elément cible non valide pour cette opération») dans IE, mais effacera avec succès la tête en chrome. Cependant, effacer le corps comme cela fonctionne dans IE, mais échoue silencieusement en chrome.

J'ai également essayé xxx

mais c'est apparemment une lecture seule propriété et ne fera rien.

Y a-t-il un bon moyen entre navigateur pour effacer le DOM?


10 commentaires

Ma question sera ce que vous essayez d'accomplir avec cela exactement. être parce que je ne peux pas penser à une situation où vous devez faire cela


Jeez, les gens me demandent toujours que sur toutes mes questions. Même si vous ne pouvez pas penser à une bonne raison pour laquelle vous voudriez de dégager de manière programmable le DOM, je veux toujours le faire. Si vous aimez, supposez simplement que je veux juste arbitrairement le faire pour le plaisir.


Donc, vous exécutez JavaScript dans votre page et vous souhaitez effacer le JavaScript que vous utilisez pour le moment de la page? Cela me semble un problème.


Quant à demander pourquoi vous voudriez faire cela, c'est une question parfaitement raisonnable. C'est une chose étrange à faire, beaucoup d'entre nous ne savent pas comment le faire, donc si vous n'expliquez pas ce que vous essayez vraiment d'accomplir, vous n'avez aucune chance de solliciter d'autres moyens de résoudre votre problème (quel que soit le Le problème est).


@ jfriend00 Je suis assez certain que JavaScript continuera à fonctionner même si l'étiquette de script est effacée du DOM, mais une fois que cela a été effacé, cela ne peut plus être appelé à l'extérieur.


@ jfien00: merci d'avoir fait clairement. Nous ne sommes pas la police de code, expliquant ce que vous essayez d'accomplir vous aidera à vous donner une bonne solution. Être tout impoli à ce sujet, et jouer au pantalon Smarty est juste enfantin


@ JCRIPH00 J'essaie d'accomplir une fonction qui effacera complètement la page. Le problème est aussi simple que cela. Aucune alternative négligée.


@Ibu je suis désolé si je suis tombé en arrière aussi grossier et arrogant. Ce n'est pas mon intention. J'essaie simplement de dire que ce que j'essaie d'accomplir est exactement ce que la question demande. Si vous étiez la descente, pourriez-vous s'il vous plaît expliquer comment cela est digne d'un bowvote?


@Peter - Ce n'est pas vraiment votre objectif final car il ne fait rien d'utile tout seul, mais évidemment, vous ne vous souciez pas de partager cela. Peu importe, je vais passer à d'autres questions.


@ jfien00, JavaScript n'est pas obligé de se trouver dans le DOM. Il peut être situé sur l'ordinateur localement. Par exemple, voir l'utilisateur JS et Extensions.


5 Réponses :


13
votes

Ceci fonctionne ... xxx

jsfiddle .

Notez que le navigateur quittera le Doctype intact.


1 commentaires

Comment est-ce que personne n'a mentionné document.write ()?



2
votes

Voici un exemple utile, pas parfait mais peut utiliser

/**
 * 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);
    }
    }


0 commentaires

3
votes

paramètre document code> 'S innerhtml code> est prise en charge officiellement en HTML5 , mais pas dans HTML4.

Ceci devrait fonctionner dans HTML4: P>

var html = document.documentElement;
while(html.firstChild){
    html.removeChild(html.firstChild);
}


0 commentaires

2
votes

Bien que NON CROSS NAVEZER, OPERA dispose d'une propriété écrite OUTERHTML code>.

document.documentElement.outerHTML = "";


0 commentaires

2
votes

Il peut être beaucoup plus simple xxx


0 commentaires