当前位置: 首页 > 知识库问答 >
问题:

前端 - 后端返回富文本<div>180<X<=360</div>,如何避免<X<=360被解析成标签?

孔砚
2023-12-28

请教一下,后端返回富文本中比如 <div>180<X<=360</div> 这种内容如何正常渲染?(因为<X<=360会被识别成html标签)

因为这个内容是先由后端生产出来的,应该没什么很好的办法直接用replace去锁定替换;
本来和后端商量后改为使用转义后的< 结果请求方法内自动把这个给替换了,因为用的是库,所以暂时没办法去避免这个问题
计划后面换一套请求方法,但是目前还是需要解决这个问题的

共有1个答案

季城
2023-12-28

要避免 <X<=360 被解析成 HTML 标签,你可以尝试以下几种方法:

  1. 使用实体编码:
* 你可以将 `<` 替换为 `&lt;`,将 `>` 替换为 `&gt;`。这样,`<X<=360` 就会变成 `&lt;X&lt;=360`,从而不会被解析为 HTML 标签。* 示例:后端返回的字符串为 `<div>180&lt;X&lt;=360</div>`。
  1. 使用 CDATA:
* 在 XML 中,CDATA 用于包含可能被解析为标记的文本。虽然你的内容是 HTML,而不是 XML,但有些库或框架可能仍然支持使用 CDATA 来避免解析问题。* 示例:`<![CDATA[180<X<=360]]>`
  1. 自定义标签:
* 如果你的 HTML 解析器支持自定义标签,你可以考虑使用非标准的 HTML 标签来包裹文本,例如 `<xmp>` 或 `<plaintext>`。* 示例:`<xmp>180<X<=360</xmp>`
  1. 使用 JavaScript 转义:
* 如果你的富文本在前端渲染,你可以在前端使用 JavaScript 对这些特殊字符进行转义。这样可以确保即使内容被当作 HTML 解析,也不会出现问题。
  1. 修改后端逻辑:
* 如果可能的话,与后端开发人员协商,确保返回的富文本内容不包含可能被解析为 HTML 的字符或字符串。
  1. 考虑使用的库或框架:
* 如果你使用的库或框架有关于这方面的文档或问题解答,查看它们可能会有助于找到解决方案。
  1. 暂时不渲染:
* 如果只是暂时的问题,并且你计划在未来更换请求方法或库,那么你可以考虑暂时不渲染这部分内容,直到你有更好的解决方案。

根据你的描述,你目前正在使用的库自动替换了 &lt;<。在这种情况下,你可能需要与该库的维护者或社区联系,看看是否有已知的问题或解决方案。同时,考虑上述的其他方法,看看是否可以作为临时的解决方案。

 类似资料:
  • 我有一个方法,按顺序调用4个其他方法来检查特定条件,并且每当返回Truthy的内容时立即返回(不检查以下内容)。 这似乎有很多行李编码。我宁愿这样做,而不是每个2行if语句: 但这是无效的Python。我是否错过了一个简单、优雅的解决方案?顺便提一下,在这种情况下,这四种检查方法可能很昂贵,因此我不想多次调用它们。

  • 一面(9.29) js 基本数据类型 如何判断类型 100 + typeof undefined 输出什么 == 和 === 的区别 [] == ![] 如何判断一个数组 ES6 新增的数组方法 说一下 reduce 防抖 && 节流 http 请求头 事件流 Vue2 和 Vue3 的区别 在你的学习中,有一次快速掌握新技术的过程吗?是怎么做的? 聊一聊你引以为傲的事 聊一聊你失败的经历 聊一聊

  • 1、async、await和promise的联系 2、一道代码题,看this的指向和立即执行函数 3、三列布局(口述真的太难了,我双飞翼、圣杯都写烂了,半天憋不 出一个所以然) 4、防抖节流的应用区别,搜索框用防抖还是节流 5、js怎么判断数组和对象类型 6、prototype和__proto__的区别 7、call函数有什么用 8、两数之和 9、vue2对数组怎么进行响应式 10、项目具体做了哪

  • 攒好运!! 1.事件模型 2.数据类型检测 3.call,apply,bind 4.深浅拷贝 5.节流 定时器版和事件戳版 6.vue响应式原理 7.async、await 8.同源策略、跨域 9.项目 10.新技术 全回答出来,挂了....

  • 自我介绍 看你实习期间涉及到低代码平台?你之前用过的那个,底层实现逻辑了解吗 高性能表格怎么实现的? WebSocket用来实现 webshell 的时候是用的什么库?Socket.io么 箭头函数有什么特点 call apply bind 函数的区别 看代码输出 this、 event loop相关 了解fiber架构么 srr是什么?还有什么渲染方式 看你会vue,说说v-if和v-for的区

  • 前端一面, 被疯狂拷打, 当然也是因为我本来就菜 1. 为什么没有实习 啊?当然是找不到实习(bushi) 大二技术不过关, 大三在搞科研()差不多就这样 2. 简单介绍一下你感觉自己最突出的项目 balabalaba开始吟唱 3.说一下输入url以后发生了什么 看起来很简单的问题, 但是疯狂拷打了() (3.1)先根据域名,协议,端口检查是否合法 但是反问:如果url不合法会发生什么 当 URL