我的编程空间,编程开发者的网络收藏夹
学习永远不晚

微信小程序中富文本编辑器的实现

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

微信小程序中富文本编辑器的实现

小程序也是有富文本编辑器这个控件的,别说,之前我还真没注意。

官方文档

官方文档中给出的东西倒是不多,具体的代码示例在下图红框中标注的位置:

示例代码大概是这个样子:

通过官方的示例,我这边大概了解了一下微信小程序editor的使用,我这里封装了一个自定义组件:

效果如下图所示:

功能展示大概就是这个样子,我这里放一下我组件的全部代码:

myEditor.js

// api 请求类
const API = require("../../request/api.js").report;
// 公共函数库
const utils = require("../../utils/util.js");
// 加密字符
const constant = require("../../utils/constant.js");
// 双语字典
const languageUtils = require("../../language/languageUtils");
// 获取应用实例
const app = getApp();
Component({
  
  properties: {
    project_id: {
      type: Number,
      value: "",
    },
    //编辑器默认提示语
    placeholder: {
      type: String,
      value: "开始编辑吧...",
    },
    // 修改时显示内容
    richTextContents: {
      type: String,
      value: "",
    },
    // 编辑的富文本的索引
    index: {
      type: Number,
      value: 0,
    },
  },
  
  data: {
    // 用户手机键盘得高度,大于0表示打开了键盘
  },
  
  methods: {
    
    onEditorReady() {
      let self = this;
      this.triggerEvent("onEditorReady");
      // 获取编辑器实例
      self
        .createSelectorQuery()
        .select("#editor")
        .context((res) => {
          self.editorCtx = res.context;
          self.setContents(self.properties.richTextContents); //设置富文本内容
        })
        .exec();
    },
    
    format(e) {
      let self = this;
      let { name, value } = e.target.dataset;
      // 富文本编辑器格式化内容方法
      self.editorCtx.format(name, value);
    },
    
    onStatusChange(e) {
      let self = this;
      self.setData({
        formats: e.detail,
      });
    },
    
    setContents(rechtext) 
    {
      this.editorCtx.setContents({
        html: rechtext,
        success: (res) => {
          // 富文本内容设置成功
          // console.log("[setContents success]", res);
        },
      });
    },
    
    getEditorContent() 
    {
      let self = this;
      // 富文本编辑器获取内容方法
      self.editorCtx.getContents({
        success: (res) => {
          let array = [];
          array["html"] = res.html;
          array["index"] = self.properties.index;
          // 通过自定义事件把内容传到父组件
          self.triggerEvent("getEditorValue", array);
        },
      });
    },
    
  },
});

myEditor.json

{
  "component": true,
  "usingComponents": {}
}

myEditor.wxss

@import "./icon/icon.wxss";

.ql-container{
    padding: 12rpx;
    border: 1rpx solid #707070;

}

.toolbar {
    z-index: 999;
    box-sizing: border-box;
    padding: 0 20rpx;
    height: 100rpx;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border: 2rpx solid #ECECEC;
    border-left: none;
    border-right: none;
    background-color: #FFFFFF;
}

.ql-active {
    color:  #22C704;
}

myEditor.wxml


<view class="toolbar" catchtouchend="format">
      <i class="iconfont icon-charutupian" catchtouchend="insertImage"></i> 
      <i class="iconfont icon-format-header-2 {{formats.header === 2 ? 'ql-active' : ''}}" data-name="header" data-value="{{2}}"></i>
      <i class="iconfont icon-format-header-3 {{formats.header === 3 ? 'ql-active' : ''}}" data-name="header" data-value="{{3}}"></i>
      <i class="iconfont icon-zitijiacu {{formats.bold ? 'ql-active' : ''}}" data-name="bold"></i>
      <i class="iconfont icon-zitixieti {{formats.italic ? 'ql-active' : ''}}" data-name="italic"></i>
      <i class="iconfont icon-zitixiahuaxian {{formats.underline ? 'ql-active' : ''}}" data-name="underline"></i>
      <i class="iconfont icon--checklist" data-name="list" data-value="check"></i>
      <i class="iconfont icon-youxupailie {{formats.list === 'ordered' ? 'ql-active' : ''}}" data-name="list" data-value="ordered"></i>
      <i class="iconfont icon-wuxupailie {{formats.list === 'bullet' ? 'ql-active' : ''}}" data-name="list" data-value="bullet"></i>
</view>
<editor style="height:auto; min-height:240rpx;"  
        id="editor" 
        class="ql-container"
        bindinput="getEditorContent"
        bindready="onEditorReady"
        bindstatuschange="onStatusChange">
</editor>

以上就是微信小程序中富文本编辑器的实现的详细内容,更多关于小程序富文本编辑器的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

微信小程序中富文本编辑器的实现

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

微信小程序中富文本编辑器如何实现

本文小编为大家详细介绍“微信小程序中富文本编辑器如何实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“微信小程序中富文本编辑器如何实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。示例代码大概是这个样子:通过官
2023-07-02

如何使用PHP实现微信小程序的音频编辑功能?

如何使用PHP实现微信小程序的音频编辑功能?随着微信小程序的快速发展,音频编辑功能逐渐成为用户对小程序的期待之一。在本文中,我们将探讨如何使用PHP语言实现微信小程序的音频编辑功能,并提供一些具体的代码示例。准备工作首先,我们需要准备一个小
如何使用PHP实现微信小程序的音频编辑功能?
2023-10-28

Python的Flask框架中集成CKeditor富文本编辑器的教程

CKeditor是目前最优秀的可见即可得网页编辑器之一,它采用JavaScript编写。具备功能强大、配置容易、跨浏览器、支持多种编程语言、开源等特点。它非常流行,互联网上很容易找到相关技术文档,国内许多WEB项目和大型网站均采用了CKed
2022-06-04

微信小程序怎么实现text文本的展开与收起

这篇文章主要介绍了微信小程序怎么实现text文本的展开与收起 的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信小程序怎么实现text文本的展开与收起 文章都会有所收获,下面我们一起来看看吧。先看看布局文件,关
2023-06-26

实现微信小程序中的文字打字机效果

实现微信小程序中的文字打字机效果微信小程序作为一种新兴的应用开发方式,已经在各行业得到了广泛的应用。在小程序中,文字是最为基本的展示形式之一,有时为了增加趣味性和吸引用户注意力,我们可以采用文字打字机效果来呈现文本内容。本文将介绍如何在微信
实现微信小程序中的文字打字机效果
2023-11-21

微信小程序中实现计算器的案例分析

这篇文章将为大家详细讲解有关微信小程序中实现计算器的案例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容如下项目展示页面设计分为上面输入的显示部分和下面按键部分