rich-text.uvue 2.1 KB
Newer Older
DCloud-yinjiacheng's avatar
DCloud-yinjiacheng 已提交
1 2
<template>
  <view>
W
微调  
wanganxp 已提交
3
    <page-head title="rich-text"></page-head>
DCloud-yinjiacheng's avatar
DCloud-yinjiacheng 已提交
4 5
    <view class="uni-padding-wrap uni-common-mt">
      <view class="uni-btn-v">
W
微调  
wanganxp 已提交
6 7 8
        <navigator url="/pages/component/rich-text/rich-text-tags">
          <button type="primary">rich-text渲染单个HTML标签示例</button>
        </navigator>
DCloud-yinjiacheng's avatar
DCloud-yinjiacheng 已提交
9 10
      </view>
      <view class="uni-btn-v">
W
微调  
wanganxp 已提交
11
        <navigator url="/pages/component/rich-text/rich-text-complex">
DCloud-yinjiacheng's avatar
DCloud-yinjiacheng 已提交
12
          <button type="primary">rich-text渲染复杂HTML示例</button>
W
微调  
wanganxp 已提交
13
        </navigator>
DCloud-yinjiacheng's avatar
DCloud-yinjiacheng 已提交
14
      </view>
DCloud-yinjiacheng's avatar
DCloud-yinjiacheng 已提交
15 16 17
      <view class="uni-title">
        <text class="uni-subtitle-text">selectable</text>
      </view>
DCloud_iOS_XHY's avatar
DCloud_iOS_XHY 已提交
18
      <view class="text-box">
19 20
        <rich-text id="richtext" @click="changeText" style="border: 1px; border-style: solid; border-color: red;" :selectable="true"
          :nodes="text"></rich-text>
DCloud-yinjiacheng's avatar
DCloud-yinjiacheng 已提交
21
      </view>
DCloud-yinjiacheng's avatar
DCloud-yinjiacheng 已提交
22 23 24 25 26
    </view>
  </view>
</template>

<script>
27 28 29 30 31 32 33 34 35 36 37 38
  export default {
    data() {
      return {
        text: "<span>hello uni-app x!</span><br/><span>uni-app x,终极跨平台方案</span>",
        richTextHeight: 0,
        richTextElement: null as UniElement | null
      }
    },
    onReady() {
      this.richTextElement = uni.getElementById('richtext') as UniElement
      setTimeout(() => {
        this.updateRichTextHeight()
39
      }, 1200)
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
    },
    methods: {
      changeText() {
        if (this.text === "<span>hello uni-app x!</span><br/><span>uni-app x,终极跨平台方案</span>") {
          this.text = "<h1>hello uni-app x!</h1><br/><h2>uni-app x,终极跨平台方案</h2>"
        } else {
          this.text = "<span>hello uni-app x!</span><br/><span>uni-app x,终极跨平台方案</span>"
        }
        setTimeout(() => {
          this.updateRichTextHeight()
        }, 200)
      },
      updateRichTextHeight() {
        if (this.richTextElement != null) {
          const elRect = this.richTextElement!.getBoundingClientRect()
          this.richTextHeight = elRect.height
          console.log('richTextHeight:', this.richTextHeight)
        }
      }
    }
  }
DCloud-yinjiacheng's avatar
DCloud-yinjiacheng 已提交
61 62 63
</script>

<style>
DCloud-yinjiacheng's avatar
DCloud-yinjiacheng 已提交
64
  .text-box {
H
hdx 已提交
65
    padding: 20px 0;
DCloud-yinjiacheng's avatar
DCloud-yinjiacheng 已提交
66 67
    background-color: white;
  }
H
hdx 已提交
68
</style>