HTML 转义 Javascript 字符串后是否需要 "clean up"?
Do I need to "clean up" after HTML Escape a Javascript string?
我有一个 Javascript 应用程序,我需要在其中对字符串中的“<”和“>”等字符进行转义。
这看起来是一个理想的解决方案:
How to escape HTML
function escapeHTML(str){
var p = document.createElement("p");
p.appendChild(document.createTextNode(str));
return p.innerHTML;
}
or a short alternative using the
Option()
constructor
function escapeHTML(str){
return new Option(str).innerHTML;
}
问:这是否真的将 "p"(和相关文本)添加到我的 DOM 中?
问:如果我只想保存转义字符串,是否需要 "removeChild()" 或任何其他 "cleanup"?
A1:不,如果函数也调用了 document.body.appendChild(p);
A2:没有,从A1你大概能猜到。函数returns之后,它的局部变量被丢弃,p
变得不可达,最终会被垃圾回收。
我有一个 Javascript 应用程序,我需要在其中对字符串中的“<”和“>”等字符进行转义。
这看起来是一个理想的解决方案:
How to escape HTML
function escapeHTML(str){ var p = document.createElement("p"); p.appendChild(document.createTextNode(str)); return p.innerHTML; }
or a short alternative using the Option() constructor
function escapeHTML(str){ return new Option(str).innerHTML; }
问:这是否真的将 "p"(和相关文本)添加到我的 DOM 中?
问:如果我只想保存转义字符串,是否需要 "removeChild()" 或任何其他 "cleanup"?
A1:不,如果函数也调用了 document.body.appendChild(p);
A2:没有,从A1你大概能猜到。函数returns之后,它的局部变量被丢弃,p
变得不可达,最终会被垃圾回收。