富文本编辑器内容的存储和回显

6,469 阅读1分钟

富文本编辑器是一种内嵌于浏览器,所见即所得的文本编辑器。目前网站上比较常见的富文本编辑器有:TinyMCE、UEeditor、kindeditor、wangEditor 等等许多,本文使用的是 wangEditor,轻量级,小巧实用,配置方便,使用简单。可以自定义皮肤功能,免费开源。

本文目的

实现富文本编辑器发布文章功能。

wangEditor 使用说明

wangEditor 的使用方式可以参见官方文档:www.wangeditor.com/v4/。

技术实现方式

主要核心就是存储富文本编辑器输出的内容,并在页面中进行内容的回显。

法一

富文本编辑器输出的内容在不做任何处理的情况下,就是 dom 结构也就是 html,如下: image.png

  • 直接把这段 html 字符串传给后端存储
  • 前端使用 vue 的指令 v-html 进行 html 字符串内容的展示

优点:在 vue 项目中实现简单方便

法二

前端把编辑器输出的内容拼成 html 页面:

let htmlValue = `
      <!DOCTYPE html>
      <html lang="en">
      <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>news</title>
        <style>
        </style>
      </head>

      <body>
        <div>
          <div>${编辑器输出的内容}</div>
        </div>
      </body>

      </html>
      `

再把此页面生成 .html 格式的文件,然后上传到服务器,在服务器里面读取并保存。

缺点:

  1. 前端需要通过 iframe 标签把服务器上的 html 文件嵌套进来
  2. 把 html 文件上传到服务器会比较慢

法三

  • 前端直接提交编辑器输出的 html 内容
  • 服务器读取后创建一个 .html 的文件并把读取到的内容写入并保存在服务器里面。