zoukankan      html  css  js  c++  java
  • Vue 中 tinymce 富文本编辑器的使用

    Vue 中 tinymce 富文本编辑器的使用

    在原生的 html 中使用到了 vue, 遇到了富文本的需求,tinymce 目前是这个市场比较受欢迎且长期维护的。

    1、 依赖下载

    因为前端不是 node 环境,无法通过 npm 的方式下载 tinymce。

    官方依赖下载地址:https://www.tiny.cloud/get-tiny/self-hosted/

    image-20210728151419134

    我的版本是 5.8.1,下载后放置在 js 模块下,然后页面引入资源:

    <script src="/resources/js/tinymce/tinymce.min.js" referrerpolicy="origin"></script>
    

    注意修改成自己的 js 路径。

    2、初始化配置

    引入资源后,需要进行初始化,这里我的配置如下:

    <script>
        tinymce.init({
            //选择器,这里选取id为mytextarea的文本框
            selector: '#mytextarea',
            //汉化
            language: "zh_CN",
            //图片上传插件,配置后才有图片按钮
            plugins: 'image',
            // 图片异步上传处理函数
            images_upload_handler: (blobInfo, success, failure) => {
                let formData = new FormData();
                formData.append("mFile", blobInfo.blob());
                $.ajax({
                    url: "/xms/projectFeedback/image/upload",
                    type: 'POST',
                    data: formData,
                    processData: false,
                    contentType: false,
                    success: function (data) {
                        if (data.data === "文件类型不符合") {
                            failure("文件类型不符合");
                        } else if (data.data === "文件为空") {
                            failure("文件内容为空");
                        } else {
                            //上传成功,返回路径
                            success(data.data);
                        }
                    }
                });
            }
        })
    </script>
    

    对应上文的 vue 的 文本框代码如下,可以看到有 id 指定:

    <el-form-item label="进度反馈:" prop="description">
        <el-input type="textarea" v-model="form.description" :rows="18" id="mytextarea"></el-input>
    </el-form-item>
    

    接下来尝试获取文本框数据,你会发现通过 form.desription无法获取得到数据,双向绑定失效了。

    还好 tinymce 提供了获取文本框数据的方法

    tinymce.activeEditor.getContent();
    

    将取的值赋给 form.description 就可以了。

    3、汉化

    到上面的步骤,你会发现界面指示都是英文的,这有点不友好。

    官方也提供了各种语言包的下载:https://www.tiny.cloud/get-tiny/language-packages/

    找到汉化包,下载:

    image-20210728151653266

    解压,将 zh_CN.js 文件放在 tinymce 的 langs 文件夹下:

    image-20210728152116725

    到这里便汉化完成。

    最后展示下效果图:

    image-20210728152307216

    神清气爽有木有。

    自我控制是最强者的本能-萧伯纳
  • 相关阅读:
    反射详解六
    反射详解五
    反射详解四
    反射详解三
    反射详解二
    mysql行转列
    mysql增删改查
    视图的使用
    js过滤
    错误集
  • 原文地址:https://www.cnblogs.com/CF1314/p/15070734.html
Copyright © 2011-2022 走看看