2 votes

Dois-je faire le "ménage" après l'évasion HTML d'une chaîne Javascript ?

J'ai une application Javascript dans laquelle je dois échapper des caractères comme "<" et ">" dans une chaîne.

Cette solution semble idéale :

Comment échapper au HTML

function escapeHTML(str){
    var p = document.createElement("p");
    p.appendChild(document.createTextNode(str));
    return p.innerHTML;
}

ou une brève alternance Option() constructeur

function escapeHTML(str){
    return new Option(str).innerHTML;
}

Q : Est-ce que cela ajoute réellement "p" (et le texte associé) à mon DOM ?

Q : Ai-je besoin d'un "removeChild()" ou d'un autre "nettoyage" si tout ce que je veux sauvegarder est la chaîne de caractères échappée ?

4voto

Máté Safranka Points 3485

R1 : Non, ce serait si la fonction s'appelait aussi document.body.appendChild(p);

A2 : Non, comme vous pouvez probablement le deviner à partir de A1. Après le retour de la fonction, ses variables locales sont supprimées, la fonction p devient inaccessible et sera finalement ramassé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X