【问题标题】:How to Encode Tags Entities with JavaScript [closed]如何使用 JavaScript 编码标签实体 [关闭]
【发布时间】:2015-03-01 02:23:12
【问题描述】:

如何使用 .innerHTML 对标签进行编码

数组编码 html 实体

效果不好

var find = ['<','>','"'];
var replace = ['&lt;','&gt;','&quot;'];

window.onload = function() {
    var code = document.getElementsByTagName("code");
    cl = code.length;

    for (var e = 0; e < cl; e++) 
         code[e].innerHTML = code[e].innerHTML.replace(find,replace);
};

【问题讨论】:

  • 很好。你有问题吗?哦,你忘了&amp;。这也需要编码......
  • 是的,这是个问题!
  • 使用 .textContent 代替

标签: javascript replace innerhtml html-entities


【解决方案1】:

创建文本节点会更安全。任何需要的逃生都将为您完成:

window.onload = function() {
  var code = document.getElementsByTagName("code");
  cl = code.length;

  for (var e = 0; e < cl; e++) {
    var tx = code[e].innerHTML;
    code[e].innerHTML = "";

    var n = document.createTextNode(tx);
    code[e].appendChild(n);
  }
};
<p><code>Escaped: <b><i>foo</i></b></code></p>

<p>Not: <b><i>foo</i></b></p>

【讨论】:

    猜你喜欢
    • 2015-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-10
    • 2010-09-17
    相关资源
    最近更新 更多