今天我用ueditor時候遇到一個問題:
我從數據庫中讀取內容進行編輯的時候,不是有一些html標簽嘛,從數據庫讀出來沒有問題;
但是我用asp.net mvc,把讀取出來的內容通過ueditor的api方法賦值到編輯區域的時候html標簽被轉義了;
比如<變為了<
我跟蹤代碼看后端取到的數據沒有問題,返回到前端的時候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/