JS实现HTML标签转义及反转义

function HTMLDecode(text) { 
    var temp = document.createElement("div"); 
    temp.innerHTML = text; 
    var output = temp.innerText || temp.textContent; 
    temp = null; 
    return output; 
} 
var tagText = "<p><b>123&456</b></p>";
var encodeText = HTMLEncode(tagText);

注:火狐不支持innerText,须要使用 textContent 属性,而IE早期版本不支持此属性,为了同时兼容IE及火狐,须要进行判断操做.html

由于innerText(textContent)会获取纯文本内容,忽略html节点标签,而innerHTML会显示标签内容,因此咱们先将需转义的内容赋值给innerText(textContent),再获取它的innerHTML属性,这时获取到的就是转义后文本内容。 code

 同理,反转义的方法为先将转义文本赋值给innerHTML,而后经过innerText(textContent)获取转义前的文本内容htm

function HTMLDecode(text) { 
    var temp = document.createElement("div"); 
    temp.innerHTML = text; 
    var output = temp.innerText || temp.textContent; 
    temp = null; 
    return output; 
} 
var tagText = "<p><b>123&456</b></p>";
var encodeText = HTMLEncode(tagText);
console.log(encodeText);//&lt;p&gt;&lt;b&gt;123&amp;456&lt;/b&gt;&lt;/p&gt;
console.log(HTMLDecode(encodeText)); //<p><b>123&456</b></p>
相关文章
相关标签/搜索