4

如果您有一个包含 HTML 实体的字符串并且想要取消转义,则建议多次使用此解决方案(或其变体):

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'>"

(例如,请参阅此答案:https ://stackoverflow.com/a/1912522/1199564 )

只要字符串不包含换行符并且我们不在Internet Explorer 版本 pre 10 上运行(在版本 9 和 8 上测试),这工作正常。

如果字符串包含换行符,IE 8 和 9 将用空格字符替换它,而不是保持不变(就像在 Chrome、Safari、Firefox 和 IE 10 上一样)。

htmlDecode("Hello\nWorld"); 
// returns "Hello World" on IE 8 and 9

对于 IE 10 之前的解决方案有什么建议吗?

4

1 回答 1

4
于 2012-09-25T14:32:37.393 回答