function htmlDecode(input){
var e = document.createElement('div');
e.innerHTML = input;
return e.childNodes.length === 0 ? "" : e.childNodes[0].nodeValue;
}
用法
htmlDecode("<img src='myimage.jpg'>");
// returns "<img src='myimage.jpg'>"
不错。那反过来呢?
这会反转它
也许这就是你的意思
不错。那反过来呢?
但是,这不会在我们要取消转义的 html 中执行脚本标签吗?我们不希望那样……
如果您有一棵要解码的节点树而不是一个叶节点,则此代码不起作用。这是我用来代替的解决方案
嗯,评论过滤器似乎把我的函数撕成了碎片。我把它发到 Gist 上:https://gist.github.com/oxguy3/18d92821fe931945c86f
我认为这在 IE 中不起作用。
有没有办法在没有文档的情况下做到这一点?
如何逃脱一个鸡肉汉堡?
有没有解决方案?
请帮忙?
感谢您的帖子。正是我需要的。如果有人有兴趣,在 https://paulschreiber.com/blog/2008/09/20/javascript-how-to-unescape-html-entities/ 处,有一个类似的扩展方法实现。
阅读 lucascaro 在 stack overflow 上的答案,显然这会受到 XSS 攻击,他对此有解决方案。
http://stackoverflow.com/questions/1147359/how-to-decode-html-entities-using-jquery
<hugeLikeThanks>感谢您!</hugeLikeThanks>
对于 2020 年发现这一点的任何人,您应该改为使用 DOMParser API,例如
https://stackoverflow.com/questions/1912501/unescape-html-entities-in-javascript/34064434#34064434