美文网首页
Ckeditor 图片上传回调 ckeditor image c

Ckeditor 图片上传回调 ckeditor image c

作者: Amfishers | 来源:发表于2018-12-18 18:49 被阅读73次

首先使用ckeditor4 ,翻遍API文档,官方好像没有想到有回调这一回事。 没办法 又得看源码

将ckeditor.js 格式化一下,源码不是从头看到尾。这个ckeditor解压之后有2w3k多行,没有必要。
讲一下我的思路,首先图片上传时间,config配置项有一个 uploadUrl 属性,所以肯定会进行一些操作。
再看一下上下文,如果不涉及到image关键字的,先忽略。 这时候目标范围就小很多了,

涉及到的地方大概有 image2 uploadimage Imagesimple luxattachment(自定义的上传附件) 这几个插件

看到uploadimage的代码结构如下, 感觉可能性会大一点,所以着重研究。


 CKEDITOR.plugins.add("uploadimage", {
    requires: "uploadwidget",
    onLoad: function() {
       
    },
    init: function(f) {
         onUploading: function() {},
         onUploaded:  function(){}
    }
}()

但是调试阶段,在这个函数的 onUploaded onUploading里面添加一些console.log() 然后再进行图片上传,发现没有输出,没有触发到事件。 在详细分析了一下,图片上传之后都有一个文件上传成功的样式

image.png

看了一下 network的XHR,后端没有响应 ‘文件上传成功’ 的字样给我。所以我在ckeditor找,在lang/zh-cn.js 中找到,

"uploadwidget":{"abort":"上传已被用户中止","doneOne":"文件上传成功"; ...... } 

所以在ckeditor.js中查找 doneOne 只有一个结果,最后锁定在了 bindNotifications 这个属性里面,这个属性被封装在 uploadwidget 插件里面,话不多说 直接找 bindNotifications, 在两个地方出现 一个是 uploadimage 一个是 Imagesimple, 因此 结果就是在 Imagesimple 的init属性中,
在 "uploaded" 函数中添加回调

l.on("uploaded",
function(c) {
    a.widgets.initOn(b, "image", {
        src: c.sender.url
    });
    b.setStyle("opacity", 1)
     uploadImgSuccess&&uploadImgSuccess()   //回调代码加在这里
});
l.on("error",
function() {
    b.remove()
});

这时在初始化 ckeditor 时就可以使用图片上传成功回调了

CKEDITOR.replace('detail',{
    uploadImgSuccess: function() {
        // 成功之后回调事件
    }
});

相关文章

网友评论

      本文标题:Ckeditor 图片上传回调 ckeditor image c

      本文链接:https://www.haomeiwen.com/subject/xqeehqtx.html