在vue中使用tinymce富文本编辑器,解决tinymce在dialog对话框中层级太低的问题

1、安装

npm install tinymce -S

2、把node_modules\tinymce里面的文件 包括tinymce文件夹 全部复制到static文件夹下面,如下图

3、tinymce默认是英文界面,还需要下载一个中文语言包zh_CN.js

https://www.tiny.cloud/get-tiny/language-packages/

在tinymce文件夹下新建langs文件夹,将下载好的语言包放到langs文件夹下面如图

 4、在main.js中引入tinymce

 5、在components文件夹下新建Editor.vue文件

Editor.vue:

<template>
  <div class="SEditor">
    <textarea class="my_editor" id="Editor" v-model="Editortext"></textarea>
  </div>
</template>

<script>
    export default {
        props: {
            EditorTexts: ‘‘
        },
        data() {
            return {
                Editortext:‘‘,
            }
        },
        computed: {

        },
        watch: {
            EditorTexts: function (newVal, oldVal) {
                console.log(newVal)
                this.Editortext= newVal
                tinyMCE.activeEditor.setContent(newVal)
            }
        },
        mounted() {
            this.tinymce();
        },
        beforeDestroy() {
            this.$tinymce.remove()
        },
        methods: {
            tinymce() {
                let _this = this;
                _this.$tinymce.baseURL = ‘/static/tinymce‘
                _this.$tinymce.init({
                    selector: "#Editor",
                    language_url: ‘../../../../static/tinymce/langs/zh_CN.js‘,//设置中文
                    language: ‘zh_CN‘,
                    plugins: [ //配置插件:可自己随意选择,但如果是上传本地图片image和imagetools是必要的
                        ‘advlist autolink link image lists charmap  preview hr anchor pagebreak ‘,
                    ],
                    //工具框,也可自己随意配置
                    toolbar: ‘insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image | forecolor backcolor‘,
                    image_advtab: true,
                    image_dimensions: true,
                    width:‘97%‘,
                    height: 380,
                    table_default_styles: {
                        width: ‘100%‘,
                        borderCollapse: ‘collapse‘
                    },
                    image_title: false, // 是否开启图片标题设置的选择,这里设置否
                    automatic_uploads: true,
                    // 图片异步上传处理函数
                    images_upload_handler: (blobInfo, success, failure) => {
                        var formData;
                        formData = new FormData();
                        formData.append(‘file‘,blobInfo.blob());
                        // formData.append(‘group‘,‘editor‘);
                        // _this.$requestPost这个是我调用后台图片上传接口
                        const img_file = blobInfo.blob()
                        console.log(blobInfo.blob())
                        _this.$requestPost({
                            url: "/baseapi/files?group=editor",
                            params: formData,
                        }, data => {
                            success(‘api‘+data.url)
                            //url地址一定要拼接正确,否则图片将不会显示在富文本框中
                        }, err => {
                            failure(‘上传失败‘)
                        })
                    },
                    init_instance_callback: function(editor) {
                        editor.on(‘keyup‘, () => {
                            // 获取富文本编辑器里面的内容
                            _this.Editortext = editor.getContent();
                            // editor.setContent(_this.Editortext)

                        });
                    },
                    setup: (editor) => {
                        // 抛出 ‘on-ready‘ 事件钩子
                        editor.on(
                            ‘init‘, () => {
                                // console.log(_this.Editortext)
                                // console.log(_this.EditorTexts)
                                //将props中监测到的值赋给data中的Editortext
                                _this.Editortext = _this.EditorTexts
                                editor.setContent(_this.Editortext)
                            }
                        )
                        // 抛出 ‘input‘ 事件钩子,同步value数据
                        editor.on(
                            ‘input change undo redo‘, () => {
                                _this.$emit(‘input‘, editor.getContent())
                            }
                        )
                    }
                    }).then(resolve => {
                    // 初始化富文本编辑器里面的内容
                    resolve[0].setContent(_this.Editortext)

                });
            },

        }
    }
</script>

<style>

</style>

6、在需要的地方引入组件

 7、解决tinymce在dialog对话框中层级太低的问题???

方法很简单,找到F:\hzyy-htnew\static\tinymce\skins\ui\oxide下面的skin.min.css文件,将里面的z-index统一后面加五个零

参考链接:tinymce中文文档 https://www.cnblogs.com/jvziking/p/12028275.html

富文本编辑器tinymce获取文本内容和设置文本内容:https://blog.csdn.net/u012679583/article/details/50505842

初始化:https://segmentfault.com/a/1190000012791569

主要参考:https://blog.csdn.net/vipsongtaohong/article/details/89553271

原文地址:https://www.cnblogs.com/jvziking/p/12028275.html

时间: 2024-08-18 18:09:53

在vue中使用tinymce富文本编辑器,解决tinymce在dialog对话框中层级太低的问题的相关文章

粗暴将tinymce富文本编辑器整合到vue项目

之前我使用的tinymce富文本编辑器,版本时4版本的,一些新的功能使用不上,现在想把5版本的tinymce整合进项目,之前tinymce是通过cdn的形式引入的,不会占用项目体积, 但是又想使用tinymce的新功能,比如加入第三方插件什么的,地图插件,设置行高,多图片上传等,都是很吸引人的功能,于是打算先不顾文件体积,将tinymce整个文件拷贝到项目里,这样方便插入第三方插件, 中文官网:http://tinymce.ax-z.cn/configure/integration-and-se

tinymce 富文本编辑器 编写资料

tinymce官方文档: 粘贴图片插件 博客搬运地址 使用Blob获取图片并二进制显示实例页面 tinymce自动调整插件 是时候掌握一个富文本编辑器了——TinyMCE(1) XMLHttpRequest 2.0的家臣们 URL.createObjectURL和URL.revokeObjectURL 如何使用 blob:http:// 隐藏一个mp3文件的真实地址? https://www.z-u-i-d-a-i-m-a.com/question/3913274460982272.htm 使用

在 Vue 项目中引入 tinymce 富文本编辑器

项目中原本使用的富文本编辑器是 wangEditor,这是一个很轻量.简洁编辑器 但是公司的业务升级,想要一个功能更全面的编辑器,我找了好久,目前常见的编辑器有这些: UEditor:百度前端的开源项目,功能强大,基于 jQuery,但已经没有再维护,而且限定了后端代码,修改起来比较费劲 bootstrap-wysiwyg:微型,易用,小而美,只是 Bootstrap + jQuery... kindEditor:功能强大,代码简洁,需要配置后台,而且好久没见更新了 wangEditor:轻量.

vue中引入Tinymce富文本编辑器

最近想在项目上引入一个富文本编辑器,之前引入过summernote,感觉并不太适合vue使用, 然后在网上查了查,vue中使用Tinymce比较适合, 首先,我们在vue项目的components文件夹中加入如下几个文件 首先看一下Tinymce/dynamicLoadScript.js的内容: let callbacks = [] function loadedTinymce() { // to fixed https://github.com/PanJiaChen/vue-element-a

Vue 中使用UEditor富文本编辑器-亲测可用-vue-ueditor-wrap

其中UEditor中也存在不少错误,再引用过程中. 但是UEditor相对还是比较好用的一个富文本编辑器. vue-ueditor-wrap说明 Vue + UEditor + v-model 双向绑定.之所以有这个 repo 的原因是: ?1.UEditor 依然是国内使用频率极高的所见即所得编辑器而 Vue 又有着广泛的使用,所以将两者结合使用,是很多 Vue 项目开发者的切实需求. ?2.目前没有发现满足这种需求,而使用又很方便的 repo.有的可能也只是简单的暴露一个 UEditor 的

Vue项目增加TinyMec富文本编辑器组件

TinyMec富文本编辑器开源,而且开发人员对他的支持比较好,所以选用了它 https://liubing.me/vue-tinymce-5.html 基于Vue CLI 3脚手架搭建的项目整合tinymce 5富文本编辑器,vue cli 2版本及tinymce 4版本参考:https://blog.csdn.net/liub37/article/details/83310879做了些小修改,详情见github Github:https://github.com/liub1934/vue-us

vue集成百度UEditor富文本编辑器

在前端开发的项目中.难免会遇到需要在页面上集成一个富文本编辑器.那么.如果你有这个需求.希望可以帮助到你 vue是前端开发者所追捧的框架,简单易上手,但是基于vue的富文本编辑器大多数太过于精简.于是我将百度富文本编辑器放到vue项目中使用.效果图如下 废话不多说. 1.使用vue-cli构建一个vue项目.然后下载UEditor源码.地址:http://ueditor.baidu.com/website/ 把项目复制到vue项目的static文件下.目的是让服务可以访问到里面的文件,打开UEd

ASP.NET MVC5 中百度ueditor富文本编辑器的使用

随着网站信息发布内容越来越多,越来越重视美观,富文本编辑就是不可缺少的了,众多编辑器比较后我选了百度的ueditor富文本编辑器. 百度ueditor富文本编辑器分为两种一种是完全版的ueditor,另一种是ueditor的迷你版umeditor. 一.我们先讲完全版的ueditor. 1.建立数据模型. 2.建立对应的控制器和视图. 3.访问http://ueditor.baidu.com/website/download.html 进入开发版的下载页面,下载.net UTF-8版本,现在最新

ASP.NET MVC 中使用 UEditor 富文本编辑器

在上篇<使用ASP.NET MVC+Entity Framework快速搭建博客系统>中,已经基本上可以实现博客分类和博客文章的CURD.但是,文章编辑界面实在是-- 好吧,咱得搞专业点.来个传说中的富文本编辑器,度娘了一下,发现 KISSY Editor 和 UEditor 貌似比较简单的样子,既然这样就用百度的 UEditor 吧,到这里下载最新的.NET版. 解压后,将默认目录名称改为 ueditor 然后复制到项目的 Content 目录中,大概就像下图中的样子 打开~/Views/P