之前有项目需要用到富文本编辑器,在网上找了好几个后,最终选择了这个功能强大,扩展性强的tinymce

  tinymce中文文档地址(不全):http://tinymce.ax-z.cn/

  tinymce英文原版文档地址:https://www.tiny.cloud/docs/demo/

  

  接下来大致讲一下一个小demo(vue项目 + tinymce)

 1、npm 安装 tinymce 和 @packy-tang/vue-tinymce

npm i tinymce @packy-tang/vue-tinymce

  

 2、复制node_modules/tinymce目录下所有文件至public/目录下

    如下图

           

    

    然后在public/index.html页面全局引入tinymce

<body>
<div id="app"></div>
<script src="/tinymce/tinymce.min.js"></script>
</body>

    

  3、汉化

    tinymce需要额外做汉化处理,中文汉化包地址:zh_CN.js

    将 zh_CN.js文件直接放到public/tinymce/langs/目录下就行了,后续配置(下面会讲)时加上{language: 'zh_CN'}就能实现。

  4、引入

    在vue项目main.js文件中

// tinymce编辑器
import tinymce from 'tinymce'
import VueTinymce from '@packy-tang/vue-tinymce'
Vue.prototype.$tinymce = tinymce
Vue.use(VueTinymce)

  5、使用

    tinymce有多种编辑器模式,具体可以看文档了解,

      笔者一开始使用的是经典模式,但经典模式使用的是iframe,不方便影响编辑器内部的东西,于是采用内联模式,但是内联模式是需要

    聚焦后才会出现编辑工具栏,不符合需求,所以采用设置聚焦的元素未body的方法让编辑工具栏一直显示

    代码如下

    <template>

  <div class="tinymce-editor">
<div id="tinymceToolbar"></div>
<vue-tinymce
ref="editor"
class="editor overflow-scroll"
v-model="content"
:setting="setting"
:setup="setup"
@keyup.native="$emit('editorChange', content)"
/>
</div>
</template> <script>
export default {
name: 'tinymceEditor',
components: {
},
data() {
return {
// 编辑器内容
content: '',
// 编辑器设置
setting: {
inline: true, // 设置内敛模式
menubar: false, // 隐藏菜单栏
toolbar:
'code undo redo restoredraft | cut copy paste pastetext | forecolor backcolor bold italic underline strikethrough link anchor | alignleft aligncenter alignright alignjustify outdent indent | \
    styleselect formatselect fontselect fontsizeselect | bullist numlist | blockquote subscript superscript removeformat | \
    table image media charmap emoticons hr pagebreak insertdatetime print preview | fullscreen | bdmap indent2em lineheight formatpainter axupimgs | myUpload',
// 工具栏,根据需要写对应的工具名称,顺序及分割线等等,这里的最后的 ‘myUpload’ 是下面setup里的自定义插件
toolbar_mode: 'sliding', // 工具栏模式,这里是滑行模式(当屏幕过小时,多余的工具会隐藏,点击更多按钮会出现其他工具,这里配置出现的特效)
plugins: 'print preview searchreplace autolink directionality visualblocks visualchars fullscreen image link media template code
          codesample table charmap hr pagebreak nonbreaking anchor insertdatetime advlist lists wordcount imagetools textpattern help
          emoticons autosave bdmap indent2em autoresize formatpainter axupimgs',
          // 需要用到的功能插件,如链接,列表等等
language: 'zh_CN', // 语言,汉化
branding: false, // 隐藏品牌,隐藏状态栏中显示的“ Powered by Tiny ”链接
resize: false, // 是否可以缩放编辑器
elementpath: false, // 在编辑器底部的状态栏中禁用元素路径。
fixed_toolbar_container: '#tinymceToolbar', // 可以设置元素选择器指定工具栏嵌套在哪个元素里面
custom_ui_selector: 'body', // 聚焦的元素
noneditable_noneditable_class: 'mceNonEditable', // 使用此选项,您可以指定TinyMCE将使用的类名称,以确定使用noneditable插件时可编辑哪些内容区域。主要用入你想以代码的形式添加某些内容,并给这些内容设置类名,使他们不可编辑,只能整个删除
init_instance_callback: editor => {
editor.focus() // 初始化聚焦,让内联模式的编辑器工具显示
},
},
}
},
methods: {
/**
* @description: 编辑器setup
* @author: Depp_ck
*/
setup(editor) {
// 自定义插件实现自定义工具栏按钮功能
editor.ui.registry.addButton('myUpload', {
tooltip: '上传',
icon: 'browse',
onAction: () => {
console.log('点击了上传')
},
})
},
},
}
</script> <style lang="scss" scoped>
.tinymce-editor {
padding: 20px;
position: relative;
.editor {
padding: 10px;
border: 1px solid #ddd;
height: 410px;
font-size: 16px;
line-height: 1.4;
overflow-y: scroll;
}
}
</style>

前端富文本编辑器vue + tinymce的更多相关文章

  1. 前端富文本编辑器 vue-html5-editor

    1..项目创建与初始化 在安装好脚手架的依赖后,要执行 npm install vue-html5-editor -S 来安装这个富文本插件,由于这个富文本插件的图标是依赖font-awesome.c ...

  2. 富文本编辑器TinyMCE的使用(React Vue)

    富文本编辑器TinyMCE的使用(React Vue) 一,需求与介绍 1.1,需求 编辑新闻等富有个性化的文本 1.2,介绍 TinyMCE是一款易用.且功能强大的所见即所得的富文本编辑器. Tin ...

  3. Django 之 富文本编辑器-tinymce

    这里的富文本编辑器以 tinymce 为例. 环境:ubuntu 16.04 + django 1.10 + python 2.7 ubuntu安装tinymce: python 2.7 $ sudo ...

  4. tinymce 富文本编辑器 编写资料

    tinymce官方文档: 粘贴图片插件 博客搬运地址 使用Blob获取图片并二进制显示实例页面 tinymce自动调整插件 是时候掌握一个富文本编辑器了——TinyMCE(1) XMLHttpRequ ...

  5. vue集成百度富文本编辑器

    1.前期工作,访问百度富文本官网下载相应的百度富文本文件,根据后端用的技术下载相应的版本,建议下载最新版UTF-8版 (有图有真相,看图) https://ueditor.baidu.com/webs ...

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

    项目中原本使用的富文本编辑器是 wangEditor,这是一个很轻量.简洁编辑器 但是公司的业务升级,想要一个功能更全面的编辑器,我找了好久,目前常见的编辑器有这些: UEditor:百度前端的开源项 ...

  7. Vue CLI 3+tinymce 5富文本编辑器整合

    基于Vue CLI 3脚手架搭建的项目整合tinymce 5富文本编辑器,vue cli 2版本及tinymce 4版本参考:https://blog.csdn.net/liub37/article/ ...

  8. 15、Vue CLI 3+tinymce 5富文本编辑器整合

    富文本编辑器里大佬们都说tinymce NB! 插件安装 inymce官方提供了一个vue的组件tinymce-vue 如果有注册或购买过服务的话,直接通过组件配置api-key直接使用,懒的注册或者 ...

  9. vue中引入Tinymce富文本编辑器

    最近想在项目上引入一个富文本编辑器,之前引入过summernote,感觉并不太适合vue使用, 然后在网上查了查,vue中使用Tinymce比较适合, 首先,我们在vue项目的components文件 ...

随机推荐

  1. JS Object Deep Copy & 深拷贝 & 浅拷贝

    JS Object Deep Copy & 深拷贝 & 浅拷贝 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Refe ...

  2. 如何取消 Google Cloud Platform 试用 & 关闭 GCP 帐号 & 删除信用卡 & 取消订阅

    如何取消 Google Cloud Platform 试用 & 关闭 GCP 帐号 & 删除信用卡 & 取消订阅 关闭您的 Google Cloud Platform 帐号 s ...

  3. Swift in Action

    Swift in Action Swift Playgrounds https://apps.apple.com/us/app/swift-playgrounds/id1496833156?mt=12 ...

  4. django学习-3.如何编写一个html页面并展示到浏览器,及相关导入错误的解决方案

    1.前言 在django中,视图的概念是:具有相同功能和模板的网页,都可以称为视图.通俗一点来说,就是你平常打开任一浏览器,输入一个地址A后看到浏览器窗口展示出来地址A所对应的页面内容B,页面内容B就 ...

  5. Power Query 导入多源数据

    导入方法: 导入数据库文件: 修改加载方式: 其他类型数据处理方式类似

  6. Mybites学习

    参考链接:https://www.cnblogs.com/dongying/p/4073259.html <select <!-- 1. id (必须配置) id是命名空间中的唯一标识符, ...

  7. 又长又细,万字长文带你解读Redisson分布式锁的源码

    前言 上一篇文章写了Redis分布式锁的原理和缺陷,觉得有些不过瘾,只是简单的介绍了下Redisson这个框架,具体的原理什么的还没说过呢.趁年前项目忙的差不多了,反正闲着也是闲着,不如把Rediss ...

  8. SpringBoot2.2.5整合ElasticSearch7.9.2

    1:前言 为什么是SpringBoot2.2.5,不是其他的SpringBoot版本,原因有两个: 1:SpringBoot2.2.0以上才能支持ElasticSearch7.x版本. 2:Sprin ...

  9. 用代码来实践Web缓存

    Web缓存是可以自动保存常见文档副本的HTTP设备.当Web请求抵达缓存时,如果本地有"已缓存的副本",就可以从本地存储设备而不是原始服务器中提取这个文档. 上面是<HTTP ...

  10. Python列表元组和字典解析式

    目录 列表解析式List comprehensive 集合解析式Set comprehensive 字典解析式Dict comprehensive 总结 以下内容基于Python 3x 列表解析式Li ...