当前位置: 首页 > news >正文

uniapp解析富文本,视频无法显示问题

1. uniapp解析富文本,视频无法显示问题

  rich-text 无法处理 video,uni-app 文档中关于 rich-text 介绍中明确说明 rich-text 支持什么(参考文档),其中并不包含 video 。

1.1. 解决办法

  在uni-app插件市场搜索parse插件使用。
  parse插件有很多,包含的功能也不尽相同。
  我播放 video 时使用的是uParse 富文本解析。
在这里插入图片描述

1.1.1. uParse 富文本解析插件的使用

  (1)在项目中导入插件。这步不详述了。不会的需要补补关于uniapp的使用知识。导入成功后,多出目录项目根目录/components/u-parse。
  (2)在页面中导入插件。

import uParse from '@/components/u-parse/u-parse.vue';

  (3)替换rich-text

<!-- <rich-text :nodes="content"></rich-text> -->
<u-parse :content="content" />

1.1.2. 处理 vedio 标签样式

  默认的vedio样式需要修改时,可以使用正则表达式替换。。
  (1)新建 js 文件 : richTextUtil.js

语法说明
标题文本样式列表图片链接目录代码片表格注脚注释自定义列表LaTeX 数学公式插入甘特图插入UML图插入Mermaid流程图插入Flowchart流程图插入类图快捷键
代码片复制

下面展示一些 内联代码片

/*** 处理富文本里的图片宽度自适应* 1.去掉img、video标签里的style、width、height属性* 2.修改所有style里的width属性为max-width:100%* 3.img、video标签添加style属性:max-width:100%;height:auto* 4.去掉<br/>标签* @param html* @return string*/
function formatRichText (html) {// 去掉img标签里的style、width、height属性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;});// 去掉video标签里的style、width、height属性newContent= html.replace(/<video[^>]*>/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;});// 修改所有style里的width属性为max-width:100%// 去掉所有style里的font-size属性newContent = newContent.replace(/style="[^"]+"/gi,function(match,capture){match = match.replace(/width:[^;]+;/gi, 'max-width:100%;').replace(/width:[^;]+;/gi, 'max-width:100%;');match = match.replace(/font-size:[^;]+;/gi, '');return match;});// 去掉<br/>标签newContent = newContent.replace(/<br[^>]*\/>/gi, '');// img标签添加style属性:max-width:100%;height:autonewContent = newContent.replace(/\<img/gi, '<img style="max-width:100%;height:auto;display:block;margin:0px auto;"');// video标签添加style属性:max-width:100%;height:autonewContent = newContent.replace(/\<video/gi, '<video style="max-width:100%;height:auto;display:block;margin:0px auto;"');return newContent;
}export default {formatRichText,
};

  (2)引入js库

import richTextUtil from '@/common/richTextUtil.js';

  (3)调用方法

this.content = richTextUtil.formatRichText(res.content);
http://www.dtcms.com/a/358080.html

相关文章:

  • HTTP的概念、原理、工作机制、数据格式和REST
  • 卫星信号和无线信号的设备厂商
  • Linux(1)|入门的开始:Linux基本指令
  • 【C++】C++ const成员函数与取地址操作符重载
  • 数据结构 03(线性:单链表)
  • 强化学习-CH6 随机近似
  • Ansible 核心运维场景落地:YUM 仓库、SSH 公钥、固定 IP 配置技巧
  • 2025年9月计算机二级C++语言程序设计——选择题打卡Day11
  • 如何取得专案/设计/设定/物件的属性
  • mysql权限user表赋权操作修改
  • 《潮汐调和分析原理和应用》之四S_Tide使用2
  • 整体设计 的语言设计:通用模型语言的标准模板语言的规格模式语言(搜狗汪仔答问)
  • 【计算机网络】生产问题排查:如何使用Wireshark抓包/读取抓包文件进行网络分析
  • 使用AI大模型Seed1.5-VL精准识别开车接打电话等交通违法行为
  • TensorFlow深度学习实战(35)——概率神经网络
  • k8s(自写)
  • Kafka 4.0 生产者配置全解析与实战调优
  • STM32手动移植FreeRTOS
  • 算法(②排序算法)
  • 吴恩达机器学习作业八:SVM支持向量机
  • react代码分割
  • 对于牛客网—语言学习篇—编程初学者入门训练—复合类型:二维数组较简单题目的解析
  • Redis(自写)
  • LeetCode第438题 - 找到字符串中所有字母异位词
  • C++ 面试高频考点 力扣 34. 在排序数组中查找元素的第一个和最后一个位置 二分查找左右端点 题解 每日一题
  • 为什么vue3会移除过滤器filter
  • JUC并发编程10 - 内存(02) - volatile
  • 生成对抗网络(GAN):深度学习领域的革命性突破
  • DriveDreamer4D
  • YOLOv11 训练参数全解析:一文掌握 epochs、batch、optimizer 调优技巧