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

首頁 > 編程 > JavaScript > 正文

在JavaScript中對HTML進行反轉(zhuǎn)義詳解

2019-11-20 10:00:35
字體:
供稿:網(wǎng)友

在JavaScript中對字符串進行轉(zhuǎn)義和反轉(zhuǎn)義操作,常用的方法莫過于使用encodeURI (decodeURI)、encodeURIComponent (decodeURIComponent)這幾個方法,具體使用方法和區(qū)別。

但是如何在JavaScript中對HTML進行反轉(zhuǎn)義操作呢?例如下面這段代碼:

var jsonData = {  title: "<%= data.name? data.name : title %>",  desc: "<%= data.content? data.content : '' %>",  image: "<%- data.img? data.img : '' %>"};

其中<%= %>包起來的部分是從服務端返回的值(上例中的代碼取自Node.js中Express的ejs模板的代碼)。如果從服務端返回的字符串中包含有引號,例如單引號或者雙引號,那上述這段JS代碼在瀏覽器中解釋的時候會出現(xiàn)錯誤。如何解決這個問題呢?

其基本思路是通過頁面上DOM元素的innerHTML屬性將字符串進行HTML反轉(zhuǎn)義,然后將值返回給JavaScript的變量。看下面兩段代碼:

1. 原生JavaScript寫法:

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'>");

2. JQuery寫法:

function htmlDecode(value){  return $('<div/>').html(value).text(); }

第一個函數(shù)使用原生的JavaScript方法創(chuàng)建一個DIV元素,然后將需要反轉(zhuǎn)義的字符串賦值給它的innerHTML屬性,最后返回DIV元素的nodeValue屬性的值。第二個函數(shù)則使用JQuery的方法,其基本原理和第一個函數(shù)相同。由于DIV元素都只是在內(nèi)存中創(chuàng)建,并未append或inert到頁面上,所以不會對現(xiàn)有的頁面產(chǎn)生任何影響。

最后,我們將一開始的那段代碼改成下面的這種方式:

var jsonData = {  title: $('<div/>').html("<%= data.name? data.name : title %>").text(),  desc: $('<div/>').html("<%= data.nontent? data.nontent : '' %>").text(),  image: "<%- data.img? data.img : '' %>"};

這樣便可以在JavaScript中對服務器端返回的字符串進行HTML反轉(zhuǎn)義操作了。

以上這篇在JavaScript中對HTML進行反轉(zhuǎn)義詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 云梦县| 来宾市| 邯郸市| 吉木乃县| 贡觉县| 江津市| 花垣县| 松原市| 乌拉特前旗| 杭锦旗| 留坝县| 清新县| 晋中市| 安仁县| 特克斯县| 兴业县| 台南市| 嘉善县| 都匀市| 舞阳县| 裕民县| 玛纳斯县| 文安县| 孟村| 景洪市| 普兰县| 柞水县| 金坛市| 石台县| 抚松县| 晋中市| 盐亭县| 恩施市| 新化县| 庄河市| 克什克腾旗| 江孜县| 卢氏县| 黄骅市| 灵川县| 宝应县|