如何使用 JavaScript 编码标签实体 [关闭]
Posted
技术标签:
【中文标题】如何使用 JavaScript 编码标签实体 [关闭]【英文标题】:How to Encode Tags Entities with JavaScript [closed] 【发布时间】:2015-03-01 02:23:12 【问题描述】:如何使用 .innerhtml 对标签进行编码
数组编码 html 实体
效果不好
var find = ['<','>','"'];
var replace = ['<','>','"'];
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);
;
【问题讨论】:
很好。你有问题吗?哦,你忘了&
。这也需要编码......
是的,这是个问题!
使用 .textContent 代替
【参考方案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>
【讨论】:
以上是关于如何使用 JavaScript 编码标签实体 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用 Javascript 对标签本身进行编码的情况下对可能具有 html 标签的文本进行 HTML 编码