JS實現HTML標簽轉義及反轉義


今天我用ueditor時候遇到一個問題:

  我從數據庫中讀取內容進行編輯的時候,不是有一些html標簽嘛,從數據庫讀出來沒有問題;

  但是我用asp.net mvc,把讀取出來的內容通過ueditor的api方法賦值到編輯區域的時候html標簽被轉義了;

  比如<變為了&lt;

 

  我跟蹤代碼看后端取到的數據沒有問題,返回到前端的時候html標簽頁都正常可以看到,但就是在js中直接被轉義了,我還是不死心啊,先在后端用html編碼一次,用HttpUtility.HtmlEncode方法編碼一次,在Razor中再使用一次HtmlDecode,還是不能解決問題;

  由此可以看出確實是瀏覽器端自己轉義了,大概是由於各種安全原因吧;只能上網找代碼了,通過js對html轉義和反轉義,找到了如下代碼:

function HTMLEncode(html) {
    var temp = document.createElement("div");
    (temp.textContent != null) ? (temp.textContent = html) : (temp.innerText = html);
    var output = temp.innerHTML;
    temp = null;
    return output;
}

function HTMLDecode(text) { 
    var temp = document.createElement("div"); 
    temp.innerHTML = text; 
    var output = temp.innerText || temp.textContent; 
    temp = null; 
    return output; 
} 

由此解決了問題!非常感謝這位博主的代碼!

引用代碼的地址:http://blog.600km.xyz/2015/12/15/js-encode-html-tags/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM