zblog利用ue编辑器实现独立图片上传组件(免后端开发)
zblog默认的编辑器就是百度的ue编辑器,功能是非常强大,接口也丰富。我们在开发插件或者主题的时候,经常会需要图片上传功能,自己开发耗时耗力,而且还要前后端兼顾。
其实我们可以利用ue编辑器的接口,来实现免后端开发的的图片上传功能,只需要调用一个js就可以完成。
var ueditorConfig = document.createElement('script');
$(ueditorConfig).attr('src',bloghost + 'zb_users/plugin/UEditor/ueditor.config.php');
$("body").append(ueditorConfig);
var ueditorAll = document.createElement('script');
$(ueditorAll).attr('src',bloghost + 'zb_users/plugin/UEditor/ueditor.all.min.js');
$("body").append(ueditorAll);
var container = document.createElement('script');
$(container).attr('type','text/plain').attr('id','img_editor').css('display','none');
$("body").append(container);
ue_image = UE.getEditor('img_editor');
ue_image.ready(function(){
$(document).on("click",".ue-image-upload",function(){
input = $(this).siblings('input.ue-image-url');
img = $(this).siblings('img.ue-image');
ue_image.getDialog("insertimage").open();
});
ue_image.addListener('beforeInsertImage', function (t, arg) {
input.attr("value", arg[0].src);
img.attr('src',arg[0].src);
});
$(document).on("blur","input.ue-image-url",function(){
if ($(this).val())
$(this).siblings('img.ue-image').attr('src',$(this).val());
});
});
在你的应用配置页面,引入上面的js,在需要上传图片的地方,使用下面的代码
<p>
<input name="meta_thumb" type="text" class="ue-image-url" value="" placeholder="输入图片URL或者上传图片">
<input class="ue-image-upload" type="button" value="上传图片">
<img src="" class="ue-image">
</p>
主要就是三个元素,文本框、上传按钮、图片(这三个得是同级元素,否则需要修改js)。点击上传按钮后会自动弹出ue编辑器的上传图片窗口,上传完成自动将图片的url填充到文本框中和应用到图片标签中。
手动输入图片的url,离开文本框焦点,自动显示图片
有一点需要注意,ue编辑器这个插件可以不启用,但是不能删除。