如果你有一個字符串包含HTML實體,並希望取消轉義它,這個解決方案(或其變型)建議多次:在Javascript中包含換行符的Unescape 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一起使用的解決方案的任何建議?
你怎麼想換行呢?去掉它? – David
我想保持不變。我會添加一個例子。 – mgd
我不確定它是否會完全符合您的需求,但是您是否已檢出此[HTML編碼和解碼JavaScript庫](http://www.strictly-software.com/htmlencode)? – freefaller