【问题标题】:Do I need to "clean up" after HTML Escape a Javascript string?在 HTML Escape Javascript 字符串之后是否需要“清理”?
【发布时间】:2018-05-19 06:14:03
【问题描述】:

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

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

How to escape 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()”或任何其他“清理”?

【问题讨论】:

  • " 我有一个 Javascript 应用程序,我需要在其中转义字符串中的 "" 等字符。" - 为什么?你在某个地方展示它们吗?在这种情况下,不要临时转义它们,而是设置元素的 textContent 而不是它们的 innerHTML

标签: javascript html-encode


【解决方案1】:

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

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

【讨论】:

  • 完美——正是我想要确认的。非常感谢!
猜你喜欢
  • 2010-10-21
  • 1970-01-01
  • 2014-11-21
  • 1970-01-01
  • 2011-03-03
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
相关资源
最近更新 更多