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バージョン10より前(バージョン9および8でテスト済み)で実行されていない限り、これは正常に機能します。

文字列に改行が含まれている場合、IE 8および9は、文字列を変更せずにスペース文字に置き換えます(Chrome、Safari、Firefox、およびIE 10の場合のように)。

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

バージョン10より前のIEで動作するソリューションの提案はありますか?

4

1 に答える 1

4
于 2012-09-25T14:32:37.393 に答える