ueditor二次渲染,ueditor第二次加载不出来的解决方案

单行、唯一 0     412      无分类   1     0
ueditor二次渲染,ueditor第二次加载不出来的解决方案

今天我使用UEditor的时候发现第二次加载不出来:



我使用的是JQuery Easyui的弹窗插件,因为是异步的编辑或者新增一条信息。


第一次打开的时候没有问题,当关闭窗口第二次打开就加载不出来了,要重新刷新。


由于前天刚使用了layui的上传插件,也是第二次加载不出来,看官方文档有一个重新解析,我就去UEditor上找这个方法,可是找不到,只有去看源码了:


看到的源码如下:


UE.getEditor = function (id, opt) {
       var editor = instances[id];
       if (!editor) {
           editor = instances[id] = new UE.ui.Editor(opt);
           editor.render(id);
       }
       return editor;
   };


   UE.delEditor = function (id) {
       var editor;
       if (editor = instances[id]) {
           editor.key && editor.destroy();
           delete instances[id]
       }
   };

可以看到在调用 UE.getEditor 的时候先从instances取出,不存在了再实例化,第二次调用的时候还是调用了instances中那个,并没有重新实例化,由此问题在此。看看代码,改写一下,


在 UE.getEditor后面再追加一个方法render,或者先调用UE.delEditor删除后再执行。


var ue = UE.getEditor('选择器',{zIndex:9003}).render('选择器'); 


UE.delEditor('选择器');
UE.getEditor('选择器');



于是乎赶紧写成文档保存下来,以备后用。


captcha
忘记密码? 注册
第三方登录
微信赞赏
支付宝赞赏