国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-19 18:08:13
字體:
來源:轉載
供稿:網友

簡單說一下業務場景,前臺用戶通過input輸入內容,在離開焦點時,將內容在div中顯示。

這時遇到一個問題,如果用戶輸入了html標簽,則在div顯示中,標簽被解析。

由于是純前端操作,不涉及后端,因此需要通過js對輸入內容進行轉義。

這里提供一個非常簡單有效的轉義方案,利用了innerHTMLinnerText

注:火狐不支持innerText,需要使用 textContent 屬性,而IE早期版本不支持此屬性,為了同時兼容IE及火狐,需要進行判斷操作.

因為innerText(textContent)會獲取純文本內容,忽略html節點標簽,而innerHTML會顯示標簽內容,

所以我們先將需轉義的內容賦值給innerText(textContent),再獲取它的innerHTML屬性,這時獲取到的就是轉義后文本內容。

代碼如下:

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;}var tagText = "<p><b>123&456</b></p>";console.log(HTMLEncode(tagText));//<p><b>123&456</b></p> 

通過測試結果,可以看到html標簽及&符都被轉義后保存。

同理,反轉義的方法為先將轉義文本賦值給innerHTML,然后通過innerText(textContent)獲取轉義前的文本內容

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);//<p><b>123&456</b></p>console.log(HTMLDecode(encodeText)); //<p><b>123&456</b></p> 

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 钟祥市| 遂平县| 金山区| 大城县| 石阡县| 张家界市| 麦盖提县| 油尖旺区| 玛多县| 秦安县| 新蔡县| 桑日县| 定西市| 平罗县| 乌拉特中旗| 宁阳县| 公主岭市| 武义县| 庄浪县| 同江市| 济宁市| 大竹县| 久治县| 沿河| 刚察县| 榆社县| 西城区| 西丰县| 翁牛特旗| 平湖市| 门头沟区| 隆德县| 永善县| 义乌市| 山阳县| 丹巴县| 郯城县| 石楼县| 玉树县| 阜城县| 泽普县|