小程序富文本图片大小问题

概要

在小程序使用富文本或者在nuiapp(小程序的)使用富文本都会转为

<rich-text nodes="<p class="p class">内容</p>></rich-text>

如果是这种情况的话在css里面就使用不了穿透样式了

/deep/{}

uniapp小程序情况

pc:小程序里面的v-html里面什么东西东不能有,包括注释,否则会报错

<view class="dowm">
	<view class="" v-html="ggDetailForm.msgContent">
	</view>
</view>

用uniapp写小程序在里面会自动转为

<rich-text nodes="<p class="p class">内容</p>></rich-text>

解决方法及完整示例

使用正则来修改富文本图片样式

	function formatRichText(html){
	    console.log(html);
	    let newContent= html.replace(/<img[^>]*>/gi,function(match,capture){
	        match = match.replace(/style="[^"]+"/gi, '').replace(/style='[^']+'/gi, '');
	        match = match.replace(/width="[^"]+"/gi, '').replace(/width='[^']+'/gi, '');
	        match = match.replace(/height="[^"]+"/gi, '').replace(/height='[^']+'/gi, '');
	        return match;
	    });
	    newContent = newContent.replace(/style="[^"]+"/gi,function(match,capture){
	        match = match
	        .replace(/<p>/gi, '<p class="p_class">')
	        .replace(/width:[^;]+;/gi, 'max-width:100%;')
	        .replace(/width:[^;]+;/gi, 'max-width:100%;');
	        return match;
	    });
	    newContent = newContent.replace(/<br[^>]*\/>/gi, "");
	    newContent = newContent.replace(/<a>/gi, '<a class="p_class "');
	    newContent = newContent.replace(/<li>/gi, '<li class="p_class "');
	    newContent = newContent.replace(/\<p/gi, '<p class="p_class "');
	    newContent = newContent.replace(/\<span/gi, '<span class="p_class "');
	    newContent = newContent.replace(/\<img/gi, '<img style="max-width:100%;height:auto;display:block;margin-top:0;margin-bottom:0;"');
	    return newContent;
	}
	export default {
	
		data() {
			return {
				formatRichText:formatRichText,
				
			}
		},
		methods: {
			ggDetail(id) {
				let obj = {
					id: id,
				}
				let that = this
				uni.$u.http
					.get('接口', {
						params: obj,
					})
					.then(res => {
						if (res.success) {
							that.ggDetailForm = res.result
							if(that.ggDetailForm.content){
								that.ggDetailForm.content = that.formatRichText(that.ggDetailForm.content)
							}
							
							
						}
					})
			},


		},
		}
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
uniapp是一种跨平台开发框架,可以用于开发同时运行在多个平台的应用程序。在uniapp中处理富文本图片和视频相对简单。 对于富文本图片,可以使用uniapp提供的`<rich-text>`组件来展示。`<rich-text>`组件可以解析包含HTML标签的文本,从而实现多样化的文本展示效果。当处理到`<img>`标签时,可以通过给`<img>`标签的`src`属性传入图片的链接或本地路径,来展示图片uniapp会自动根据图片链接或路径,将图片显示在文本中,实现富文本图片的展示。 在处理富文本视频时,可以使用uniapp提供的`<video>`组件来展示视频。`<video>`组件可以通过给`<video>`标签的`src`属性传入视频的链接或本地路径,来展示视频。uniapp支持多种格式的视频,包括mp4、ogg、webm等。同时,`<video>`组件还可以设置视频的控制条、自动播放、循环播放等功能。 需要注意的是,富文本中的图片和视频可能会引起页面的加载速度变慢,特别是加载较多或较大的图片和视频时。为了优化用户体验,可以对图片进行压缩处理,减小图片的大小,同时可以使用懒加载技术,延迟加载富文本中的图片和视频,避免一次性加载过多的资源。 综上所述,在uniapp中处理富文本图片和视频可以通过使用`<rich-text>`组件和`<video>`组件来展示,并结合压缩和懒加载等技术手段来优化用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值