整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          微信小程序常用的三種解析html方法,你了解多少

          言:在實際開發項目中遇到在微信小程序里需要顯示新聞內容,新聞內容是通過接口讀取的服務器中的富文本內容,是html格式的,小程序默認是不支持html格式的內容顯示的,那我們需要顯示html內容的時候,就可以通過以下三種方式來進行數據渲染。

          第一種:通過小程序自帶的標簽進行 rich-text 數據渲染

          文檔地址:https://developers.weixin.qq.com/miniprogram/dev/component/rich-text.html

          使用方法:

          1、在page.js中將從接口中獲取的值傳給content

          Page({
            data: {
              content:''
            },
            onLoad: function () {
              var that = this;
              wx.request({
                  url: '', 
                  method: 'POST',
                  data: {
                      'id':15
                  },
                  header: {
                      'content-type': 'application/json'
                  },
                  success: function(res) {
                      var content = res.data['content'];//對應富文本編輯器的內容
                      that.setData({
                      	content:content
                      })
                  }
              })
            }
          })

          2、在page.wxml中進行數據輸出

          <rich-text nodes="{{content}}" bindtap="tap"></rich-text>

          第二種:使用插件wxParse來解析html


          使用方法:

          1、插件下載地址:https://github.com/icindy/wxParse

          2、將下載后的文件夾放到小程序項目的根目錄

          3、在需要加載html內容的頁面對應的js文件里引入wxParse

          var WxParse = require('../../wxParse/wxParse.js');

          4、通過調用WxParse.wxParse方法來設置html內容

          /**
          * WxParse.wxParse(bindName , type, data, target,imagePadding)
          * 1.bindName綁定的數據名(必填)
          * 2.type可以為html或者md(必填)
          * 3.data為傳入的具體數據(必填)
          * 4.target為Page對象,一般為this(必填)
          * 5.imagePadding為當圖片自適應是左右的單一padding(默認為0,可選)
          */
          Page({
            data: {
            },
            onLoad: function () {
              var that = this;
              wx.request({
                  url: '', 
                  method: 'POST',
                  data: {
                      'id':15
                  },
                  header: {
                      'content-type': 'application/json'
                  },
                  success: function(res) {
                      var article = res.data['content'];
                      WxParse.wxParse('article', 'html', article, that,5);
                  }
              })
            }
          })

          5、在頁面中引用模板

          <!--放在底部-->
          <import src="../../wxParse/wxParse.wxml"/>
            
           <!--放在數據需要渲染的地方-->
          <view class="wxParse">
            <template is="wxParse" data="{{wxParseData:article.nodes}}"/>
           </view> 

          6、這樣就配置完了,具體的樣式是可以通過css去自定義調整的

          第三種,通過webview來加載外部網頁

          如果說直接使用文章詳情頁面,強烈建議直接加載外部網頁,這樣使用起來是去合理化的。

          文檔地址:https://developers.weixin.qq.com/miniprogram/dev/component/web-view.html


          使用方法:

          1、在所需頁面加載web-view標簽,傳入外部訪問的路徑就可以了

          <web-view bindload="finish" src="http://www.baidu.com"></web-view>

          需要注意的是個人版的微信小程序沒有這個功能,企業版的需要在控制臺中先配置相關的業務域名。

          總結

          以上就是小程序開發過程中對富文本編輯器中html渲染的三種常用方法。

          我是小程序軟件開發,每天分享開發過程中遇到的知識點,如果對你有幫助的話,幫忙點個贊再走唄,非常感謝。

          《完》

          往期文章分享:

          php常用的富文本編輯器,ueditor和kindeditor

          tmlParse 是一款基于windwos平臺的HTML文檔解析工具,可快速構建DOM樹,從而輕松實現網頁元素的爬取工作。DOM樹就是一個HTML文檔的節點樹,每個節點由:標簽(Tag)、屬性(Attribute)、文本(Text)三個值來描述。

          所謂的HTML文檔解析,指的就是如何構建一顆DOM樹,只有成功構建出DOM樹,才有可能進行后續的數據爬取和分析工作。顯然,構建DOM樹是比較復雜的過程,因為不是每一個HTML文檔都會嚴格按照規范來書寫,因此解析過程需要具有一定容錯能力。此外,解析效率也是一個需要考慮的因素,也就是說最好通過一次文檔掃描即可建立起DOM樹,而不是反復掃描。

          下面是HtmlParse介紹。

          工具特點

          1、綠色純天然,無任何第三方依賴庫,文件大小不到150K; 2、解析速度快,具有一定的HTML語法容錯能力,可快速將HMTL文檔解析為DOM樹; 3、基于命令行參數,可通過不同參數獲取指定TAG的屬性值和文本內容,從而實現網頁爬取功能; 4、可將爬取數據輸出為json格式,方便第三方程序進一步分析和使用; 5、可爬取script腳本到指定的js文件中;

          下載地址:http://softlee.cn/HtmlParse.zip

          使用方法

          HtmlParse HtmlPathFile -tag TagName [-attr] [Attribute] [-o] [JsonPathFile]

          解析指定的HTML文檔,并將文檔中指定的標簽及屬性輸出到指定文件中。

          HtmlPathFile:必選參數,要解析的HTML文檔路徑名,如果文件路徑中有空格,可使用雙引號將文件路徑包含;

          -tag:必選參數,用于指定要抓取的HTML標簽名稱; -attr:可選參數,用于指定標簽的屬性值,如果不指定,則返回該標簽的所有屬性值; -o:可選參數,用于指定抓取內容輸出的文件,可將抓取的內容保存為json格式的文件。 如果該參數不指定,則進行控制臺輸出。 如果抓取的是script、style則會保存為js格式文件。

          如果要抓取doctype,可使用-tag doctype,將整個doctype內容獲取。此時將會忽略-attr指定的任何屬性值。

          舉例說明

          1、爬取網頁中所有超鏈接

          HtmlParse c:/sina.html -tag a -attr href -o c:/sina.json

          解析C盤下的sina.html文檔,并提取該文檔中的所有超鏈接到sina.json文件中。其中**-tag a -attr href,用于指定獲取超鏈接標簽ahref**屬性。

          2、爬取網頁中所有圖片鏈接

          HtmlParse c:/sina.html -tag img -attr src -o c:/sina.json

          解析C盤下的sina.html文檔,并提取該文檔中的所有圖片鏈接到sina.json文件中。

          3、爬取網頁中所有腳本

          HtmlParse c:/sina.html -tag script -o c:/sina.js

          解析C盤下的sina.html文檔,并提取該文檔中的所有腳本函數到sina.js文件中。

          輸出內容

          如果通過-o參數指定輸出文件,則會生成一個json格式的文檔。 TagName為爬取的標簽名稱,比如超鏈接的a,其值是一個json數組,數組中的每個內容為Json對象,每個Json對象,有屬性和文本構成。如果-attr 指定了要爬取的屬性,則AttrName為指定的屬性名稱,比如href或src。text為該標簽的文本內容,有些標簽不存在文本內容,比如img、meta等,則該值為空。json格式如下:

          {
            "TagName":
            {
               {"AttrName":"AttrValue1", "text":"text1"}
               {"AttrName":"AttrValue1", "text":"text2"}
            }
          }

          下面是一個sina網頁的所有超鏈接json

          {
           "a": [{
            "href": "javascript:;",
            "text": "設為首頁"
           }, {
            "href": "javascript:;",
            "text": "我的菜單"
           }, {
            "href": "https://sina.cn/",
            "text": "手機新浪網"
           }, {
            "href": "",
            "text": "移動客戶端"
           }, {
            "href": "https://c.weibo.cn/client/guide/download",
            "text": "新浪微博"
           }, {
            "href": "https://so.sina.cn/palmnews/web-sinanews-app-download.d.html",
            "text": "新浪新聞"
           }, {
            "href": "https://finance.sina.com.cn/mobile/comfinanceweb.shtml",
            "text": "新浪財經"
           }, {
            "href": "https://m.sina.com.cn/m/sinasports.shtml",
            "text": "新浪體育"
           }, {
            "href": "https://tousu.sina.com.cn/about_app/index?frompage=heimaopc",
            "text": "黑貓投訴"
           }, {
            "href": "http://blog.sina.com.cn/lm/z/app/",
            "text": "新浪博客"
           }, {
            "href": "https://games.sina.com.cn/o/kb/12392.shtml",
            "text": "新浪游戲"
           }, {
            "href": "https://zhongce.sina.com.cn/about/app",
            "text": "新浪眾測"
           }, {
            "href": "https://mail.sina.com.cn/client/mobile/index.php?suda-key=mail_app&suda-value=login",
            "text": "新浪郵箱客戶端"
           }, {
            "href": "javascript:;",
            "text": "關閉置頂"
           }, {

          來源:https://www.cnblogs.com/softlee/p/16374079.html

          多數PHP程序都使用HTML表單從用戶那里獲取數據并計算結果。

          HTML表單的一些基本原則

          • 選擇適合于收集的數據類型和提供交互方式的控件。
          • 清楚標記每一個控件,這樣用戶就可以理解其功能。
          • 盡可能將標簽對齊。將控件的左邊緣對齊。
          • 將相關的標簽分組,并且通過設計中使用空白將每一個分組分開。
          • 表單上的控件順序應該類似于用戶操作他們的順序。

          創建基本HTML表單

          首先創造一個基本的HTML大綱,包含表單控件;然后將控件進行合并(HTML表單必須包括一個提交按鈕,用戶單擊它可以將表單數據發送到服務器。)一個單獨的HTML頁面可以包含多個表單。

          • 創建HTML結構

          包含表單的HTML結構和和普通的HTML結構一樣。

          <HTML>
            <HEAD>
            <TITLE>標題放在這</TITLE>
            </HEAD>
          <BODY>
            表單頁面放在這
            </BODY>
            </HTML>

          在包含表單的HTML頁面中可以使用任何HTML標簽。基本的表單使用FROM標簽來說明。該標簽中METHOD屬性接收GET或POST兩個值中的一個。ACTION屬性子明PHP腳本的url,該腳本可以收集通過表單收集的數據,可以是絕對路徑或者相對路徑

          <FORM METHOD="method" ACTION="url"> 
            中間可以放置表單控件
            </FORM>
          • 合并控件

          兩個常用的基本控件:文本框和提交按鈕。

          文本框:允許用戶鍵入信息以發送給PHP腳本。NAME屬性為文本提供名稱,PHP腳本可以通過名稱準確訪問其內容,因此它應該是唯一的且符合PHP變量命名規則(但不需要$符號),單標簽。VALUE屬性指明出現在提交按鈕上面的標題。創建方式如下:

          <INPUT TYPE = "TEXT" NAME="text">

          提交按鈕:允許用戶將一個表單的內容發送到服務器,一個HTML表單對應應該有一個提交按鈕。

          示例:一個完整的HTML表單。

          <HTML>
            <HEAD>
            <TITLE>標題</TITLE>
            </HEAD>
          <BODY>
          <FORM METHOD="POST" ACTION="phpinfo.php">
          <INPUT TYPE="TEXT" NAME="user_name">
          <BR/>
          <BR/>
          <INPUT TYPE="TEXT" NAME="user_email">
          <BR/>
          <BR/>
          <INPUT TYPE="SUBMIT" VALUE="Send the Data">
          </FORM>
            </BODY>
            </HTML>


          • 使用多個表單

          可以在一個HTML頁面中包含多個表單,注意下一個表單的FORM開始之前需要結束前一個FORM表單。

          <HTML>
            <HEAD>
            <TITLE>標題</TITLE>
            </HEAD>
          <BODY>
            
          <FORM METHOD="POST" ACTION="phpinfo.php">
          <INPUT TYPE="TEXT" NAME="user_name">
          <BR/>
          <BR/>
          <INPUT TYPE="TEXT" NAME="user_email">
          <BR/>
          <BR/>
          <INPUT TYPE="SUBMIT" VALUE="Send the Data">
          <BR/>
          <BR/>
          </FORM>
          
          <FORM METHOD="POST" NAME="phpinfo.php">
          <INPUT TYPE="TEXT" NAME="user_name1">
          <BR/>
          <BR/>
          <INPUT TYPE="TEXT" NAME="user_email1">
          <BR/>
          <BR/>
          <INPUT TYPE="SUBMIT" VALUE="Send the Data1">
          </FORM>
          
            </BODY>
            </HTML>


          創建表單控件

          • 創建自定義的文本框

          文本框的屬性中,TYPE和NAME是必須的,其余是可選屬性。SIZE屬性用于設置文本框的可視大小;MAXLENGTH指明用戶鍵入字符的最大長度;VALUE給出了一個最初顯示在文本框中的值。

          <input type="text" name="" size="" maxlength="" value="">
          • 創建文本區域

          文本區域可以輸入多行文本。NAME和ROWS屬性是必須的。ROWS屬性表明了文本區域內可以看到的文本行數,充滿時會滾動。COLS屬性指明可見文本列數與行數類似。WRAP屬性指明文本區域內單詞換行的方式,可以指定如下值。該標簽為雙標簽。

          說明

          off

          禁止單詞換行但用戶可以輸入換行符強制換行

          virtual/soft

          各行顯示為換行,但是換行并沒有被發送到服務器

          physica/hard

          啟用了單詞換行

          <inputarea name="" rows="" cols="" wrap="">
          • 創建密碼框

          創建密碼框的語法與文本框相同,但要將TYPE屬性指定為PASSWORD而不是TYPE。

          <input type="password" name="" size="" maxlength="" value="">
          • 創建復選框

          取兩個值中的一個,即二選一。TYPE屬性是必須的,checked屬性出現,該復選框默認情況會被選定。value屬性指定復選框被選定情況下被發送到服務器的值,默認發送on值。法如下:

          <input type="checkbox" name="" checked value="">
          • 創建單選按鈕

          語法與復選框屬性含義相同,但是TYPE屬性的值必須是RADIO,NAME屬性是必須的。

          <input type="radio" name="" checked value="">
          • 創建列表框

          用戶可以選擇一個或者多個選項,它是一個滾動菜單。

          <select name="" multipile size="">options go here</select>

          name屬性是必須的,multipile屬性指明用戶可以通過按下crtl鍵并單擊多個選項來選擇它們

          列表框的單選行為可作為單選按鈕。

          <option selected value="text"></options>
          • 創建隱藏域
          <input type="hidden" name="text"value="">
          • 實現上傳文件的HTML表單
          <input type="FILE" name="name" accept="time" value="text">

          其中type屬性是必須的。格式通過使用MIME碼指定。常用的格式如下:


          超文本標記語言文本 .html,.html text/html

            普通文本 :txt text/plain

            word文檔:application/msword

            RTF文本 :rtf application/rtf

            GIF圖形 :gif image/gif

            JPEG圖形 :jpeg,

            jpg: image/jpeg

            au聲音文件:au audio/basic

            MIDI音樂文件 :mid,.midi audio/midi,audio/x-midi

            RealAudio音樂文件 .ra, .ram audio/x-pn-realaudio

            MPEG文件 .mpg,.mpeg video/mpeg

            AVI文件 .avi video/x-msvideo

            GZIP文件 .gz application/x-gzip

            壓縮文件.rar application/octet-stream

            壓縮文件.zip application/x-zip-compressed

            TAR文件 .tar application/x-tar


          更多提交表單的信息

          • 使用圖像提交數據
          <input type="image" src="url" name="text" align="align">
          • 創建重置按鈕
          <input type="reset" value="text">

          主站蜘蛛池模板: 亚洲国产专区一区| 国产精品电影一区| 亚洲第一区在线观看| 亚洲码欧美码一区二区三区 | 中文字幕在线一区二区在线| 无码人妻久久一区二区三区蜜桃 | 精品爆乳一区二区三区无码av| 一区二区三区福利视频免费观看| 日韩有码一区二区| 亚洲高清偷拍一区二区三区| 国产一区二区三区高清视频| 亚洲一区综合在线播放| 无码国产精品一区二区免费3p | 日本一区二三区好的精华液| 久久99国产精品一区二区| 成人精品一区二区三区不卡免费看| 春暖花开亚洲性无区一区二区 | 色综合视频一区二区三区| 亚洲一区二区三区高清| 一区二区三区免费在线视频 | 国产高清在线精品一区二区三区 | 亚洲Av永久无码精品一区二区| 无码人妻精品一区二区三区99不卡| 日韩熟女精品一区二区三区| 久热国产精品视频一区二区三区| 久久青草国产精品一区| 视频一区二区在线观看| 国产精品99精品一区二区三区 | 美女啪啪一区二区三区| 亚洲AV无码一区二区大桥未久 | 国产一区二区在线| 美女免费视频一区二区| 国精产品一区一区三区MBA下载 | 日本国产一区二区三区在线观看| 精品国产一区二区三区AV| 亚洲色精品三区二区一区| 无码少妇一区二区三区浪潮AV| 国产一区中文字幕| 国产香蕉一区二区精品视频| 无码少妇一区二区三区浪潮AV| 成人精品视频一区二区三区|