博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
tinyMCE自定义添加图片插件
阅读量:4941 次
发布时间:2019-06-11

本文共 2235 字,大约阅读时间需要 7 分钟。

需求:

在富文本编辑器中插入图片,图片来自用户可以自己上传的图片库。

 

本来可以用比较恶心的方式,也就是直接用tinyMCE自带的插入图片插件来实现。恶心是因为这个图片插件需要用户填入图片的url。

想来想去,虽然是内部管理平台产品1期,但作为一个21世纪的程序猿做这样的事儿太low了,而且也怕被同事围殴,还是看了看tinyMCE的插件文档以及官方的image插件。

 

plugin.js

tinymce.PluginManager.add('imageSelector', function(editor, url) {    // Add a button that opens a window    editor.addButton('imageSelector', {        icon: 'image',        tooltip:"select image from image lib",        onclick: function() {            editor.settings.imageSelectorCallback(function(r){                console.log('inserting image to editor: '+ r);                editor.execCommand('mceInsertContent', false, 'Smiley face');            });        }    });});

 

写完并测试后觉得挺简单的,基本只要execCommand就搞定图片插入了。

本来还担心图片的缩放功能是image自己实现的,测试后发现完全不用担心了:插入进去的图片已经可以缩放调整大小了,赞!

 

调用页面的js

 
var imageSelector;     var imageSelectedCallback = null;     function showImageSelector(cb){
imageSelectedCallback = cb; imageSelector = new ImageSelector('#imageSelectorDiv', {}, function(type, data){ // 初始化图片选择弹窗 }); $('#imageSelectorPop').modal({keyboard: true, backdrop: 'static'}); } function insertImage(){
if(imageSelector.selectedItems.length == 0) return ; imageSelectedCallback(imageSelector.selectedItems[0].url); // 调用插件内部回调把图片插入到编辑器中 $('#imageSelectorPop').modal('hide'); }
tinymce.init({            selector: '.richEditor',            width: 820,            height: 200,            plugins: [                'advlist autolink lists link imageSelector hr',                'visualblocks visualchars code',                'textcolor colorpicker textpattern'            ],            toolbar: 'styleselect | forecolor backcolor | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link imageSelector',            imageSelectorCallback: showImageSelector,  // 点击编辑器上的图片按钮后的回调方法            setup: function(editor) {                                  editor.on('init', function(e) {        // tinyMCE初始化完成事件                    tinyMCE.editors[0].setContent('<%-topic.content%>');  // 设置之前编辑的内容                });            }        });

 

基本上是插件外部和内部都保留对方的一个callback,双方在事件发生时互相调用。

 

转载于:https://www.cnblogs.com/jasonxuli/p/5127826.html

你可能感兴趣的文章
sklearn——数据集调用及应用
查看>>
设置span的宽度
查看>>
234. Palindrome Linked List
查看>>
linux部分命令的全称
查看>>
CSS 制作的导航菜单
查看>>
libaio.so.1()(64bit) is needed by MySQL-server 问题解决办法
查看>>
概率论与数理统计中基于有限样本推断总体分布的方法,基于总体未知参数区间估计的假设检验方法之讨论,以及从数理统计视角重新审视线性回归函数本质...
查看>>
洛谷P1111 修复公路
查看>>
图论存图方式小结
查看>>
购物车的实现原理
查看>>
XML序列化的注意事项
查看>>
POJ 3104 二分
查看>>
bzoj 3874: [Ahoi2014]宅男计划
查看>>
Linux上的SQL Server的起步
查看>>
AFNetworking自带的解析图片的方法
查看>>
Apache与Nginx的区分比较
查看>>
python 模块的介绍(一)
查看>>
数据结构 单向动态链表的建立和输出
查看>>
前端实现动画
查看>>
lamp开发组成及其优势及网络地址组成
查看>>