最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2016年05月18日 16:13:03   投稿:jingxian  
下面小編就為大家?guī)硪黄贘avaScript中對HTML進行反轉(zhuǎn)義詳解。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

在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("&lt;img src='myimage.jpg'&gt;");

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)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

澎湖县| 天全县| 乐业县| 高雄市| 格尔木市| 通山县| 泸西县| 陇南市| 扶风县| 盈江县| 巫山县| 芦溪县| 共和县| 栾川县| 开化县| 威信县| 兴城市| 德令哈市| 临安市| 贵港市| 报价| 周口市| 石屏县| 安龙县| 伊金霍洛旗| 江门市| 广安市| 湖南省| 大兴区| 阿拉尔市| 阿巴嘎旗| 社会| 垫江县| 深圳市| 治县。| 高密市| 锦州市| 垣曲县| 抚宁县| 淮安市| 鄂尔多斯市|