uni-app使用富文本组件 mp-html

这篇具有很好参考价值的文章主要介绍了uni-app使用富文本组件 mp-html。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

  1. 安装 npm install mp-html
  2.  vue页面
  3. 富文本增加js组件 

安装 npm install mp-html

uniapp mp-html,ui,小程序

 vue页面

<template>
	<view class="gui-padding gui-margin-top" >
		<mp-html :content="content" />
	</view>
</template>

<script>
	import mpHtml from 'mp-html/dist/uni-app/components/mp-html/mp-html'
	import graceRichText from '@/utils/fuwenben.js';
	var parserHtml = require("@/GraceUI5/js/parserHTML.js");
	export default {
		components: {
			mpHtml
		},
		data() {
			return {
				content:'',
			}
		},
		onLoad: function(options) {
			const item = JSON.parse(decodeURIComponent(options.item))
			this.content = graceRichText.format(item.content);
		}
	}
	
</script>

<style>
</style>

富文本增加js组件 

 fuwenben.js文章来源地址https://www.toymoban.com/news/detail-573867.html

/*
graceUI rich-text 加强工具
link : graceui.hcoder.net
author : 5213606@qq.com 深海
*/
 
// 正则变量
var graceRichTextReg;
 
// 批量替换的样式 [ 根据项目需求自行设置 ]
var GRT = [
	// div 样式
	// ['div', "line-height:2em;"],
	// h1 样式
	// ['h1', "font-size:3em; line-height:1.5em;"],
	// h2 样式
	// ['h2', "font-size:2em; line-height:1.8em;"],
	// h3 样式
	// ['h3', "font-size:1.6em; line-height:2em;"],
	// h4 样式
	// ['h4', "font-size:1.2em; line-height:2em;"],
	// h5 样式
	// ['h5', "font-size:1em; line-height:2em;"],
	// h6 样式
	// ['h6', "font-size:0.9em; line-height:2em;"],
	// p 样式
	 ['text', "font-size:1em;line-height:2em;"],
	 ['p', "font-size:1em;word-wrap: break-word;"],
	// b 样式
	// ['b', "font-size:1em; line-height:2em;"],
	// strong 样式
	// ['strong', "font-size:1em; line-height:2em;"],
	// code 样式
	// ['code', "font-size:1em; line-height:1.2em; background:#F6F7F8; padding:8px 2%; width:96%;"],
	// img 样式
	['img', "width:100%;margn:-10rpx"],
	// blockquote
	// ['blockquote', "font-size:1em; border-left:3px solid #D1D1D1; line-height:2em; border-radius:5px; background:#F6F7F8; padding:8px 2%;"],
	// li 样式
	// ['ul', "padding:5px 0; list-style:none; padding:0; margin:0;"],
	// ['li', "line-height:1.5em; padding:5px 0; list-style:none; padding:0; margin:0; margin-top:10px;"],
	// // table
	['table', "border:1px solid #616161;border-collapse: collapse;margin:5px 0;"],
	['th', "border-right:1px solid #616161; border-bottom:1px solid #616161;"],
	['td', "border-right:1px solid #616161; border-bottom:1px solid #616161; padding:5px;border-left:1px solid #616161;"]
];
 
 
module.exports = {
	format : function(html){
		html = html.replace(/<pre.*pre>?/gis, function(word){
			return word =  word.replace(/[\n]/gi,'');
			word =  word.replace(/    /gi,'<span style="padding-left:2em;"></span>');
			return word.replace(/[\t]/gi, '<span style="padding-left:2em;"></span>');
		});
		// html = html.replace(/<pre/gi, '<p style="font-size:1em; margin:12px 0; line-height:1.2em; background:#F6F7F8; border-radius:5px; padding:8px 4%; width:92%;"');
		html = html.replace(/<\/pre/gi,"</p");
		for(let i = 0; i < GRT.length; i++){
			graceRichTextReg = new RegExp('<'+GRT[i][0]+'>|<'+GRT[i][0]+' (.*?)>', 'gi');
			html = html.replace(graceRichTextReg , function(word){
				// 分析 dom 上是否带有 style=""
				if(word.indexOf('style=') != -1){
					var regIn = new RegExp('<' + GRT[i][0] + '(.*?)style="(.*?)"(.*?)(/?)>', 'gi');
					return word.replace(regIn, '<'+ GRT[i][0] +'$1style="$2 ' + GRT[i][1] +'"$3$4>');
				}else{
					var regIn = new RegExp('<' + GRT[i][0] + '(.*?)(/?)>', 'gi');
					return word.replace(regIn, '<'+ GRT[i][0] +'$1 style="' + GRT[i][1] +'$2">');
				}
			});
		}
		return html;
	}
	
}

tip: 

  • 解决连续数字、字母不自动换行 p标签:word-wrap: break-word;
  • 解决pre不自动换行:white-space:pre-wrap;
  • 合并表格的边框:border-collapse: collapse;
uniapp mp-html,ui,小程序
uniapp mp-html,ui,小程序

到了这里,关于uni-app使用富文本组件 mp-html的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uni-app自定义组件及拓展(uni-ui)组件的使用

    UniApp 是一个基于 Vue.js 的跨平台应用框架,可以用来开发同时运行在多个平台(如微信小程序、支付宝小程序、App等)的应用程序。在 UniApp 中,组件的使用与 Vue.js 中的组件使用基本类似,但需要考虑跨平台兼容性。 1. 创建组件文件 在 UniApp 项目中创建一个新的组件,通常

    2024年04月29日
    浏览(56)
  • 使用uni-app写小程序,解析含有html标签的富文本

    最近在改一个项目,将html+js+css的项目改成小程序,我说使用的uni来写的,其中遇到一个问题,就是需要解析富文本,在vue中可以直接使用v-html, 但是小程序中的标签都是view,text以及image等,该怎么办呢 于是在uni官网找到插件u-parse dangquestion.question是需要展示的富文本字符串

    2024年02月06日
    浏览(35)
  • uni-app:vue3 + uni-app 在微信小程序中无法使用app.component全局注册组件

    按上文中的代码执行后,会发现在微信小程序开发中全局注册的组件是无法显示的,这是uniapp的一个未解决bug, 在uniapp中出了可以通过vue实例的component方法注册全局组件外,uniapp支持另一种全局注册的方式,就是通过 easycom 扫描注册,步骤如下 easycom 的扫描流程是:通过代码

    2024年02月16日
    浏览(98)
  • uni-app-使用tkiTree组件实现树形结构选择

    前言 在实际开发中我们经常遇见树结构-比如楼层区域-组织架构-部门岗位-系统类型等情况 往往需要把这个树结构当成条件来查询数据,在PC端可以使用Tree,table,Treeselect等组件展示 在uni-app的内置组件中似乎没有提供这样组件来展示,但是是有第三方包tkiTree组件来解决这个

    2024年02月14日
    浏览(72)
  • uni-app nvue页面中使用video视频播放组件

    我遇到的问题是,在nvue页面引用video组件,然后啥也没显示的,显示了无法控制播放,折腾了好久,在这里记录下来!希望可以帮助到需要的人 我的代码是这样的(src换成官方的举例)  问题1:视频页面一片空白,后来去查官方文档是这样说的 我以为按照官方提示勾选 ma

    2024年02月03日
    浏览(45)
  • uni-app - 文本展开 / 收起折叠功能,支持自定义样式(当文本内容超出规定行数后,展开收起折叠的功能)兼容 H5 / App / 小程序且易用更容易修改的插件组件源码,超详细的示例代码及注释

    网上的组件和教程代码都太乱了,根本无法按照自己的需求修改,而且基本上都有兼容性和功能性 BUG。 本文实现了 多行文本展开与折叠组件,灵活性非常高,只完成了核心功能,可随意自定义样式满足您的需求, 您只需要一键复制组件源码,按照详细的代码示例,几分钟快

    2024年02月07日
    浏览(70)
  • uni-app之Cover-View组件详细使用教程

    在 UniApp 中,Cover-View 组件是一种用于展示覆盖在页面上方的视图元素的组件。它可以用于创建各种遮罩、弹出层、悬浮按钮等效果,提供了更多自定义样式和交互的可能性。本教程将详细介绍 Cover-View 组件的用法和示例代码。 步骤1:创建一个 UniApp 项目 首先,确保已经安装

    2024年02月07日
    浏览(188)
  • uni-app实现复制文本

    在做项目的过程中,为了完善用户体验,尝尝需要做复制文本的功能。 而 uni-app官方提供的uni.setClipboardData(OBJECT)复制功能并不兼容H5端, 所以我们要做个区分,经过本人测试,可以使用,直接上代码:

    2024年02月12日
    浏览(43)
  • uni-app 的条件编译(APP-PLUS 、H5、MP-WEIXIN )

    条件编译是用特殊的注释作为标记,在编译时根据这些特殊的注释,将注释里面的代码编译到不同平台。 写法:以 #ifdef 或 #ifndef 加 %PLATFORM% 开头,以 #endif 结尾。 1 #ifdef:if defined 仅在某平台存在 2 #ifndef:if not defined 除了某平台均存在 3 %PLATFORM%:平台名称

    2024年02月09日
    浏览(47)
  • uni-app 使用v-model封装picker组件和自定义样式

    1、v-model封装picker组件 (1)封装组件myPicker.vue (2)组件调用 (3)属性说明 属性名 类型 默认值 说明 options Object 数据选项,默认[{ name: \\\"办公\\\", value: \\\"1\\\" }]格式 rangeKey String label 数据选项的属性名 rangeValue String value 数据选项的属性值 placeholoder String 请选择 未选择数据时的默认

    2024年02月09日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包