轉自:https://blog.csdn.net/BetterGG/article/details/81027291html
1、首先,html 分 2 種狀況:node
一、我在作詳情頁開發的時候發現獲取到的數據是 轉譯後的 html字符串,以下圖: 這種 轉譯後的 html字符串,左括號、右括號、&符號等都被轉譯了,這種代碼,使用下文中的 wxParse 可直接插入。 而若是使用 rich-text,則須要先轉譯成正常 html 代碼,再插入才能成功(這種方法我用如下連接中的內容中包含了例子,確實可行)。 (反轉譯方法在我另外一篇博客裏面:轉譯html連接) 我使用該反轉譯方法確實能夠將 html轉譯字符串 轉譯爲正常 html代碼,這是通過測試的,,可是我本身項目中得到的大段詳情頁的 html轉譯字符串 在經以上代碼翻譯後再放入 rich-text 中卻不能顯示出來,目前緣由還沒有清楚,若有同行大神知道箇中蹊蹺,忘留言指教,我將在此再次更新。 二、得到的是正常 html 代碼,以下圖: 2、插入 html 代碼的 3 種方法: 一、使用組件 web-view:(這種方法只能插入完整網頁) 二、使用組件 rich-text: 官方連接:點擊打開連接 git
// 插入正常 html 代碼 var article = '<div style="text-align:center;">《靜夜思》· 李白<br />牀前明月光,<br />疑是地上霜。 <br />舉頭望明月, <br />低頭思故鄉。<br /><img src="http://www.xiexingcun.com/Poetry/6/images/53e.jpg" alt="" /><br /><img src="http://www.xiexingcun.com/Poetry/6/images/53.jpg" alt="" /><br /><br /><img src="http://www.xiexingcun.com/Poetry/6/images/53b.jpg" alt="" /><br /></div>'; that.setData({ detailInfo: article }); // 插入 html 轉譯字符串 var html = '<div><p>第一行</p><p>第二行</p></div>'; var newHtml = this.htmlEscapt(html); this.setData({ detailInfo: newHtml }); htmlEscape: function(html){ var reg = /(<)|(>)|(&)|(")/g; return html.replace(reg,function(match){ switch(match){ case "<": return "<"; case ">": return ">" case "&": return "&"; case """: return "\"" } }); }
wxml 頁面:github
<rich-text nodes="{{detailInfo}}"></rich-text>
三、使用 wxParse:點擊打開連接(wxParse使用詳解) web
wxParse下載連接:點擊打開連接小程序
在此聲明一點,使用這個方法,無論下文中的 article 是正常 html 代碼,仍是 html 轉譯字符串,均可直接使用。 此外,我在項目中遇到的是將大段的 html 轉譯字符串 轉譯爲小程序可識別內容,用的就是 wxParse,,只是在項目中遇到了幾個問題,若是你也有遇到,請點擊如下連接:點擊打開連接 實例: wxss 頁面: @import "/templates/wxParse/wxParse.wxss"; xss
@import "/templates/wxParse/wxParse.wxss";
JS頁面測試
var WxParse = require('../../../templates/wxParse/wxParse.js'); Page({ data: { }, onLoad: function (options) { // var atricle = '<div><p>第一行</p><p>第二行</p></div>'; var article = '<div style="text-align:center;">《靜夜思》· 李白<br />牀前明月光,<br />疑是地上霜。 <br />舉頭望明月, <br />低頭思故鄉。<br /><img src="http://www.xiexingcun.com/Poetry/6/images/53e.jpg" alt="" /><br /><img src="http://www.xiexingcun.com/Poetry/6/images/53.jpg" alt="" /><br /><br /><img src="http://www.xiexingcun.com/Poetry/6/images/53b.jpg" alt="" /><br /></div>'; WxParse.wxParse('article', 'html', article, that, 5); }, })
WXML頁面ui
<import src="../../../templates/wxParse/wxParse.wxml"/> <view> <template is="wxParse" data="{{wxParseData:article.nodes}}"/> </view>