| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> JavaScript知识库 -> 关于tinymce插件,开发的自由表单、病历插件 -> 正文阅读 |
|
|
[JavaScript知识库]关于tinymce插件,开发的自由表单、病历插件 |
|
这是个vue2项目所以要使用vue-cli (虽然开发tinymce插件和这个没关系) 项目地址:tinymce: tinymce富文本编辑器 自由表单、病历插件 关于我开发tinymce的自由表单、病历插件这件事 - ???? - 博客园 1.前期准备这是个vue2项目所以要使用vue-cli (虽然开发tinymce插件和这个没关系) 1. 使用npm安装下面的依赖 1 "@packy-tang/vue-tinymce": "^1.1.2", 2 "@tinymce/tinymce-vue": "^3.2.8", 3 "tinymce": "^6.0.1", 2.打开node_modules 把 tinymce放到public (因为没有获取tinymceAPI密钥) 3.在index.html放入?<script src="./tinymce/tinymce.min.js"></script>? 4. 在main.js中引入 1 Vue.prototype.$tinymce = tinymce // 将全局tinymce对象指向给Vue作用域下 2 Vue.use(VueTinymce) // 安装vue的tinymce组件 5.在组件中引入tinymce? <vue-tinymce id="myTinymce" v-model="content" :setting="setting" :setup="setup" /> setting配置
1 setting: {
2 menubar: 'file edit view insert format tools table tc help',
3 toolbar:
4 "template preview | undo redo | fullscreen | formatselect alignleft aligncenter alignright alignjustify | link unlink | numlist bullist | image media table | fontselect fontsizeselect forecolor backcolor | bold italic underline strikethrough | indent outdent | superscript subscript | removeformat | help | print | control",
5 // toolbar_drawer: "sliding",
6 quickbars_selection_toolbar:
7 "removeformat | bold italic underline strikethrough | fontsizeselect forecolor backcolor",
8 plugins: "template preview link image media table lists fullscreen quickbars help control",
9 language: "zh_CN", //本地化设置
10 height: 500,
11 templates: [
12 {
13 title: "Some title 1",
14 description: "Some desc 1",
15 content: '<input type="text" />',
16 },
17 {
18 title: "Some title 2",
19 description: "Some desc 2",
20 content: '15111',
21 },
22 ],
23 }
2.开发插件tinymce文档:tinymce | Docs | TinyMCE 1.打开目录public\tinymce\plugins 在里面找一个文件复制一份?
2.文件夹改个名字control(这个名字最好是要引入的插件名),把plugin.js中的代码复制到plugin.min.js中? ?把control添加到toolbar和plugins
3.添加按钮 绑定方法?
1 // 添加插件的 button 和 菜单栏
2 const register = (editor, dialogOpener) => {
3 editor.ui.registry.addButton('control', {
4 icon: 'non-breaking', //图标
5 tooltip: '插入控件', //提示
6 onAction: dialogOpener //执行的方法
7 });
8 };
点击时会打开弹框 关于弹框的配置:Dialog | Docs | TinyMCE 点击确定会执行弹框中的
4.添加上下文菜单 对控件执行编辑,删除操作? ?关于添加上下文菜单:Context toolbar | Docs | TinyMCE ??1.注册上下文菜单的按钮???? 编辑按钮 editor.ui.registry.addButton('changecontrol', {})?//获取到对应的控件数据,执行打开弹框进行编辑控件数据??
删除按钮 editor.ui.registry.addButton('removecontrol', {})
??2.添加上下文菜单到页面上??editor.ui.registry.addContextToolbar('editcontrol', {})? ??3.为控件+号添加事件激活上下文菜单??? ??
1 dom.bind(dom.select('.c-menu'), 'click', (e)=>{
2 ?? // 显示指定的上下文菜单
3 ?? editor.dispatch('contexttoolbar-show', { toolbarKey: 'editcontrol' });
4 ?? // 隐藏指定的上下文菜单
5 ?? // editor.dispatch('contexttoolbar-hide', { toolbarKey: 'editcontrol' });
6 ?? console.log(e)
7 ?? e.stopPropagation()
8 });
5.获取控件数据? 将?editor.getControlValue = getControlValue?绑定到editor上?
1 // 获取控件数据值
2 let getControlValue = (editor)=>{
3 let dom = tinymce.activeEditor.dom
4 let controls = dom.select('.control')
5 let data = controls.map(item=>{
6 let dataControl = JSON.parse(item.getAttribute('data-control'))
7 let controlValue = item.getAttribute('data-value')
8 //文本框 没有data-value
9 if(!controlValue){
10 controlValue = item.firstElementChild.innerHTML
11 }
12 return {
13 controlType:dataControl.initialData.select,
14 fieldName:dataControl.initialData.name,
15 controlValue,
16 }
17 })
18 console.log(data)
19 return data
20 }
在页面上添加按钮绑定获取数据的方法?this.$tinymce.activeEditor.getControlValue()?
3.总结复制新建插件文件->将插件添加到tinymce->编辑插件文件(1.注册添加控件插件按钮,2.绑定插件按钮的方法,3.添加编辑删除控件的上下文菜单按钮,4.获取控件数据) 预留问题: ??1.插件按钮应该做成下拉选择控件类型而不是弹框后再选择控件类型 ??2.只能获取一次控件值,执行获取控件值 ?this.$tinymce.activeEditor.getControlValue()?后,再次修改控件值没有改变控件数据 |
|
|
| JavaScript知识库 最新文章 |
| ES6的相关知识点 |
| react 函数式组件 & react其他一些总结 |
| Vue基础超详细 |
| 前端JS也可以连点成线(Vue中运用 AntVG6) |
| Vue事件处理的基本使用 |
| Vue后台项目的记录 (一) |
| 前后端分离vue跨域,devServer配置proxy代理 |
| TypeScript |
| 初识vuex |
| vue项目安装包指令收集 |
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/30 15:05:50- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |