uni-app之editor编辑器

来源:网站建设 文章作者:dushilianren.cn 70人浏览

文章摘要:uni-app之editor编辑器;在web开发时,可以使用contenteditable来实现内容编辑。但这是一个dom API,在非H5平台无法使用。于是微信小程序和uni-app的App-vue提供了editor组件来实现这个功能,并且在uni-app的H5平台也提供了兼容。从技术本质来讲,这个组件仍然运行在视图层webview中,利用的也是浏览器的contenteditable功能。

uni-app之editor编辑器

富文本编辑器,可以对图片、文字格式进行编辑和混排。

在web开发时,可以使用contenteditable来实现内容编辑。但这是一个dom API,在非H5平台无法使用。于是微信小程序和uni-app的App-vue提供了editor组件来实现这个功能,并且在uni-app的H5平台也提供了兼容。从技术本质来讲,这个组件仍然运行在视图层webview中,利用的也是浏览器的contenteditable功能。

属性类型默认值必填说明
read-onlybooleanfalse设置编辑器为只读
placeholderstring
提示信息
show-img-sizebooleanfalse点击图片时显示图片大小控件
show-img-toolbarbooleanfalse点击图片时显示工具栏控件
show-img-resizebooleanfalse点击图片时显示修改尺寸控件
@readyeventhandle
编辑器初始化完成时触发
@focuseventhandle
编辑器聚焦时触发,event.detail = {html, text, delta}
@blureventhandle
编辑器失去焦点时触发,detail = {html, text, delta}
@inputeventhandle
编辑器内容改变时触发,detail = {html, text, delta}
@statuschangeeventhandle
通过 Context 方法改变编辑器内样式时触发,返回选区已设置的样式

案例

<template>
    <view class="container">
        <editor id="editor" class="ql-container m-ql-container" @ready="onEditorReady" @input="getEditorContent" v-if="contentVal"></editor>
        <editor id="editor" class="ql-container m-ql-container" placeholder="请输入内容" v-else></editor>
    </view></template>

<script>
    export default {
        data() {
            return {
                contentVal: '', //内容(带html)
                contentText: '', //内容(纯文本)
            }
        },
        onLoad(e) {
            //////////////////////////////////////////////////////////////1、当前模板ID
            this.currentID = e.id;
            //////////////////////////////////////////////////////////////2、如果有模板ID,标题和内容填入input框和textarea框
            if (this.currentID > 0) {
                uni.request({
                    url: getApp().globalData.ehhost + '/api/ClassBroadcast/getTempInfo',
                    method: 'POST',
                    header: {
                        "content-type": "application/x-www-form-urlencoded"
                    },
                    data: {
                        't_i': this.currentID
                    },
                    success: (res) => {
                        if (res.statusCode == 200) {
                            this.contentVal = res.data.resData.FContent;
                        } else {
                            this.contentVal = '';
                        }
                    }
                });
            } else {
                this.contentVal = '';
            }
        },
        methods: {
            onEditorReady() {/////////////////////////初始化
                uni.createSelectorQuery().select('#editor').context((res) => {
                    var contentVal_1 = this.contentVal;
                    //将内容写入编辑器
                    this.editorCtx = res.context;
                    let EContent = {
                        html: contentVal_1
                    }
                    this.editorCtx.setContents(EContent); //设置富文本编辑器的内容
                }).exec()
            },
            getEditorContent(e) {/////////////////////////获取编辑器内容,当前页面都能获取到
                this.contentVal = e.detail.html;
                this.contentText = e.detail.text;
            }
        }
    }</script><style>
    .container {
        padding: 10px;
    }

    #editor {
        width: 100%;
        height: 300px;
        background-color: #CCCCCC;
    }</style>


本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.dushilianren.cn/appnews/356.html

业务咨询

  • 官方微信

    官方微信

  • 商务合作

  • 官方微信

    官方微信

  • Copyright © 2018-2022 小程序开发 APP开发 网站建设 小程序定制 APP定制 All Rights Reserved. 网站地图
    电话咨询:18936104252
    在线客服咨询