国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 武冈市| 中江县| 彭泽县| 玛曲县| 金塔县| 宁陵县| 玉门市| 嵊泗县| 开封县| 龙里县| 个旧市| 航空| 宁陕县| 方山县| 刚察县| 新营市| 安徽省| 江川县| 凤台县| 疏附县| 长垣县| 青铜峡市| 磐石市| 崇文区| 双桥区| 陕西省| 灵寿县| 高唐县| 新丰县| 德阳市| 永新县| 睢宁县| 土默特右旗| 青铜峡市| 临湘市| 谢通门县| 桓台县| 菏泽市| 溧阳市| 汉中市| 银川市|