首页 > 解决方案 > 在 HTML Escape Javascript 字符串之后是否需要“清理”?

问题描述

我有一个 Javascript 应用程序,我需要在其中转义字符串中的“<”和“>”等字符。

这看起来是一个理想的解决方案:

如何转义 HTML

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

或使用 Option() 构造函数的简短替代方法

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

问:这是否真的在我的 DOM 中添加了“p”(以及相关的文本)?

问:如果我只想保存转义字符串,是否需要“removeChild()”或任何其他“清理”?

标签: javascripthtml-encode

解决方案


A1:不,如果函数也调用document.body.appendChild(p);

A2:不,正如您可能从 A1 中猜到的那样。函数返回后,其局部变量被丢弃,p变得不可访问,最终将被垃圾回收。


推荐阅读