菜鸟耗时4天对富文本编辑器调用远程图片

分享 未结 置顶 精帖
9 1949
设计之路
悬赏:20飞吻
最近在开发一个多用户系统,由于在发布文章的时候需要用到编辑器。 UEditor是很多网友推荐的一个,强大,我下载之后,发现这个编辑器代码已经达到2万多行,受不了这种臃肿。
对此我发现了layui有一个自带的编辑器,好像是被雪藏了,不知道是不是官方不太推荐了?
文档地址: http://www.layui.com/doc/modules/layedit.html
LayEdit仍旧遵循极简的设计风格,无论是UI上,还是接口使用上,是我喜欢的一个编辑器,代码只有几百行。
当我需要在编辑器上传图片,还有曾经上传过的图片直接调用,这样就需要自己写一个获取远程图片,对此百转千回,直接点吧,付费找人帮忙吧[哈哈]
于是发了第一个帖子
http://fly.layui.com/jie/31441/
也没遇到接单,也没得到啥有用的信息。
于是我就想编辑器表情不就是图片么?于是找到编辑器js文件,查看到表情带js代码,代码不多就几十行

这算是第一次真正接触LayEdit,表情用的是layui.layer,tips层,而我需要的是支持tab的页面层layer.open,这算是加深了layer的认识
于是我把页面付出层搭建好之后,在用ajax请求应该就好了吧,
于是发了一个贴
http://fly.layui.com/jie/31460/
结果我又遇到问题了,请求回来的数据页面加载不了,对于菜鸟来说还是比较坑,这是因为dom顺序问题。
后来能加载图片了,进行拼接
 function myphoto(tabid) {
var html = "";
html += '<ul class="swla-yunpan-ul">';
//图片资源
$.get("/api",
{
limit:10,
},
function(data){
var list=data.data
layui.each(list,function(index, item) {
// 用了format加载数据
html +='<li title="{0}"><img src="{1}" alt="{2}"></li>'.format(item.title,item.src,item.alt);
});
html += '</ul>';
document.getElementById("yun-"+tabid).innerHTML=html;
//监听li点击事件
$("#yun").on("click",'li',function(e){
//获取点击的图片
var ehtml=e.currentTarget.innerHTML
参考下面 监听点击图片事件部分
//关闭云盘
layer.close(index);
})
});
$(document).off('click', yunpan.hide).on('click', yunpan.hide);
}
又不会把图片插入到编辑器,于是又发了一贴
http://fly.layui.com/jie/31649/
结果还是没人关注,又开始对表情部分进行摸索,发现表情有一段代码如下
      //表情
,face: function(range){
face.call(this, function(img){
insertInline.call(iframeWin, 'img', {
src: img.src
,alt: img.alt
}, range);
});
}
我想我应该从这个地方入手了
我把捕获到的li事件进行修改类似方法
,yunpan:function(range){
yunpan.call(this, function(img){
insertInline.call(iframeWin, 'img', {
src: img.src
,alt: img.alt
}, range);
});
}
测试成功

对于监听点击图片事件部分代码如下
//监听li点击事件
$("#yun").on("click",'li',function(e){
//获取点击的图片
var img=e.target.src
var alt=e.target.alt
callback && callback({
src: img
,alt: alt
});
//关闭云盘
layer.close(index);
})
最终效果图如下:


点击编辑器云盘,弹出页面层,通过tab切换,不同栏目,再选择图片,关闭云盘,插入编辑器。
回帖
  • 前排[good]
    1 回复
  • 不错!!!!!!!!!!!!!
    1 回复
  • 厉害!!正好需要,感谢!!
    0 回复
  • 厉害这个····[给力] [给力] [给力]
    0 回复
  • 任霆
    5天前
    [good] [good] 不错不错,这个富文本编辑器就是功能少了点
    0 回复
  • 触发远程图片加载的代码放在那里?
    0 回复
  • 可以挑战一下这个
    https://gitee.com/layui_mod/laymd

    本来有我计划写富文本编辑器的,空下来想开工的时候发现了laymd。在原作者的基础上进行了一番魔改。

    原帖:http://fly.layui.com/jie/28878
    0 回复
  • 送你一波美女赞
    0 回复
  • @IT乐游宝 远程图片需要ajax请求,返回数据js拼接
    0 回复