uniapp小程序开发-富文本编辑器mp-html,juice外部样式转内联样式

本文主要是介绍uniapp小程序开发-富文本编辑器mp-html,juice外部样式转内联样式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

在开发一款公司的小程序过程中,有一个需求:web端后端可以上传word文档,后端转为html字符串;小程序接收显示,并且可以在小程序进行编辑修改。
其实在日常小程序中很少见到富文本编辑器的使用,所以这次使用的过程中也尝试了多种,但是最好用的还是mp-html

mp-html

这款插件也是DCloud插件库里的一款,内部其实也是封装使用微信中原生的editor

这款插件的兼容性也很不错,目前也是有人维护的,
在这里插入图片描述
如果小程序有需要还是可以支棱起来的

如何使用

	在使用上我还是踩了一些坑的,文档以及百度上的一些资料都太模糊,不足以让我一个初学者去使用。现在我记录一下我的使用过程
第一步
  • 使用 npm install mp-html -dev 安装
    在这里插入图片描述

  • 安装成功后,在node_modules中找到mp-html
    在这里插入图片描述

第二步
  • 找到node_modules/mp-html/tools/config.js 这个文件的配置可以开启编辑器,媒体,视频等插件,必须要删除之前的注释符号才是真的打开配置
  • 在这里插入图片描述 在这里插入图片描述
第三步
  • 在我们的终端,将使用命令路径切换至 cd .\node_modules\mp-html\
  • 在这里插入图片描述
  • 执行npm install
    npm run build:uni-app
    这样就把编辑器启动好了
第四步

可以封装一个组件,组件中直接引用
import mpHtml from 'mp-html/dist/uni-app/components/mp-html/mp-html'

components: {mpHtml
},
// html 可以一段字符串‘<p style="font-size:20px">dgfhfghfghfghjghj</p>’<mp-html ref="article" container-style="padding:20px" :content="html"  :editable="editable" @remove="remove" />				

遇到的问题

因为后端解析的word文档是一个完整的html字符串,例如:
<html><head><style>...</style></head><body>.....</body></html>
而对于我们的富文本是不支持解析这些标签的,而且富文本编辑器仅支持内联样式。后端提供的字符串全部是外联样式。在此,可以使用一个插件解决问题:juice

juice

还有一个插件与juice齐名的插件:inline-css ,因为安装过程中一直反应一个async-hooks 未安装,一直安装一直失败,网上没有找到一个解决方式,我就没有用这个了。如果有人看到可以私信我,帮我一下!感激哦!!!
使用方式

var juice = require('juice');
var result = juice("<style>div{color:red;}</style><div/>");
<div style="color: red;"></div>

截取body内的内容

我们可以使用一个正则就可以解决

var rx = /<body[^>]*>([\s\S]+?)<\/body>/i;
var m = rx.exec(result);if (m) this.nodes = m[1];

后记

如果小程序中仅需要展示的话,微信原生的rich-text足够了(wxparser也是可以的,但是需要加一下配置)

wxparser 配置(不能在页面的子组件中使用,无效,可以使用slot)

在pages.json里面,需要使用wxparser 的页面单独配置就可以
在这里插入图片描述

 "mp-weixin": {"usingComponents": {"wxparser": "plugin://wxparserPlugin/html-parser"}}

结语

这篇仅开发过程中遇到的问题记录。排版随便,见谅

这篇关于uniapp小程序开发-富文本编辑器mp-html,juice外部样式转内联样式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/393353

相关文章

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)

HTML中meta标签的常见使用案例(示例详解)

《HTML中meta标签的常见使用案例(示例详解)》HTMLmeta标签用于提供文档元数据,涵盖字符编码、SEO优化、社交媒体集成、移动设备适配、浏览器控制及安全隐私设置,优化页面显示与搜索引擎索引... 目录html中meta标签的常见使用案例一、基础功能二、搜索引擎优化(seo)三、社交媒体集成四、移动

Qt如何实现文本编辑器光标高亮技术

《Qt如何实现文本编辑器光标高亮技术》这篇文章主要为大家详细介绍了Qt如何实现文本编辑器光标高亮技术,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录实现代码函数作用概述代码详解 + 注释使用 QTextEdit 的高亮技术(重点)总结用到的关键技术点应用场景举例示例优化建议

HTML input 标签示例详解

《HTMLinput标签示例详解》input标签主要用于接收用户的输入,随type属性值的不同,变换其具体功能,本文通过实例图文并茂的形式给大家介绍HTMLinput标签,感兴趣的朋友一... 目录通用属性输入框单行文本输入框 text密码输入框 password数字输入框 number电子邮件输入编程框

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

CSS3打造的现代交互式登录界面详细实现过程

《CSS3打造的现代交互式登录界面详细实现过程》本文介绍CSS3和jQuery在登录界面设计中的应用,涵盖动画、选择器、自定义字体及盒模型技术,提升界面美观与交互性,同时优化性能和可访问性,感兴趣的朋... 目录1. css3用户登录界面设计概述1.1 用户界面设计的重要性1.2 CSS3的新特性与优势1.

HTML5 中的<button>标签用法和特征

《HTML5中的<button>标签用法和特征》在HTML5中,button标签用于定义一个可点击的按钮,它是创建交互式网页的重要元素之一,本文将深入解析HTML5中的button标签,详细介绍其属... 目录引言<button> 标签的基本用法<button> 标签的属性typevaluedisabled

HTML5实现的移动端购物车自动结算功能示例代码

《HTML5实现的移动端购物车自动结算功能示例代码》本文介绍HTML5实现移动端购物车自动结算,通过WebStorage、事件监听、DOM操作等技术,确保实时更新与数据同步,优化性能及无障碍性,提升用... 目录1. 移动端购物车自动结算概述2. 数据存储与状态保存机制2.1 浏览器端的数据存储方式2.1.