zoukankan      html  css  js  c++  java
  • 解决ueditor二次加载(getEditor)加载失败的问题

      最近在做项目的时候用到了ueditor控件,正常使用第一次加载没有问题,因为没有刷新页面,第二次加载的时候就会加载失败,ueditor部分出现空白,查看了一下功能基本可以定位到是getEditor时出现了问题,具体怎么解决直到我发现了下面的这篇博文,具体内容如下:

    大家自己看看官方的js文件ueditor.all.js有以下的代码

    /**
         * @name getEditor
         * @since 1.2.4+
         * @grammar UE.getEditor(id,[opt])  =>  Editor实例
         * @desc 提供一个全局的方法得到编辑器实例
         *
         * * ''id''  放置编辑器的容器id, 如果容器下的编辑器已经存在,就直接返回
         * * ''opt'' 编辑器的可选参数
         * @example
         *  UE.getEditor('containerId',{onready:function(){//创建一个编辑器实例
         *      this.setContent('hello')
         *  }});
         *  UE.getEditor('containerId'); //返回刚创建的实例
         *
         */
        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(‘_editor’)初始化UEditor时,先从放置编辑器的容器instances中获取,没有实例才实例化一个Editor,这就是引起问题的原因。 
    在第一次跳转到编辑器界面时,正常的实例化了一个新的编辑器对象,并放入instances,调用editor.render(id)渲染编辑器的DOM; 
    第二次初始化时却仅从容器中取到实例:var editor = instances[id]; 直接返回了editor对象,而编辑器的DOM并没有渲染。

    【解决方案】:
    再次使用时先删除之前的实例化对象,再进行再次实例化

    UE.delEditor('editor'); //先删除之前实例的对象
    UE.getEditor('editor'); //添加编辑器

    或者如下解决,对目标DOM进行手动渲染

    UE.getEditor('editor').render('editor'); //使用之前的对象(同时渲染DOM)

    以上解决方案本人亲测可用


    ————————————————
    版权声明:本文为CSDN博主「隔壁小王攻城狮」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/df981011512/article/details/69678711

  • 相关阅读:
    4.1.7 POD对象
    异常处理
    POJ3167 Cow Patterns [KMP]
    POJ1961 Period [KMP应用]
    POJ2778 DNA Sequence [AC自动机+矩阵]
    HDU2243 考研路茫茫——单词情结 [AC自动机+矩阵]
    POJ2185 Milking Grid [KMP应用]
    POJ2541 Binary Witch [状态压缩]
    ZOJ3430 Detect the Virus [AC自动机]
    POJ2752 Seek the Name, Seek the Fame [KMP]
  • 原文地址:https://www.cnblogs.com/dushaojun/p/11535724.html
Copyright © 2011-2022 走看看