1. 程式人生 > >【UEditor】 第一次正常,第二次渲染失敗(無法正常載入)問題

【UEditor】 第一次正常,第二次渲染失敗(無法正常載入)問題

提出問題

使用UEditor-1.4.3中遇到第一次跳轉到使用UEditor的介面後,編輯器載入正常,返回後第二次再跳轉到這個介面就出現UEditor無法正常載入,

看UEditor原始碼,發現這樣一段:

/**
     * @file
     * @name UE
     * @short UE
     * @desc UEditor的頂部名稱空間
     */
    /**
     * @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並沒有渲染。

解決問題

例如html頁面編輯器容器:

<script id="_editor" type="text/plain" name="desc" style="width:1000px;height:400px;"></script>
<!--注:html中編輯器容器id為_editor-->

在js中用下面的方式呼叫:

jQuery(function($) {
    UE.getEditor('_editor').render('_editor')
)}

也可以這樣:

jQuery(function($) {
    UE.delEditor('_editor');
    var ue = UE.getEditor('_editor');
)}

問題成功解決。


相關推薦

UEditor 第一正常第二渲染失敗無法正常載入問題

提出問題 使用UEditor-1.4.3中遇到第一次跳轉到使用UEditor的介面後,編輯器載入正常,返回後第二次再跳轉到這個介面就出現UEditor無法正常載入, 看UEditor原始碼,發現這樣一段: /** * @file * @name UE

vue中使用UEditor富文字首次載入正常第二無法正常載入

網上看到一些方法 1.可以在每次載入前刪除 mounted(){     UE.delEditor('editor');     this.ue = window.UE.getEditor('editor')

UEditor 的表格載入正常第二卻顯示不出來vue.js裡面的解決方法

困擾了很久很久的問題,轉載這位哥們的http://blog.csdn.net/zrk1000/article/details/46865093 補充一下,用了新框架vue.js,用vue-cli做開發,切換每個不同的元件,也會出現這種問題,解決方法是在元件生命週期里加上就可

用jquery 繫結一個按鈕click事件後第一點選後一切正常第二點選竟然執行兩以後越來越多

用jquery  繫結一個按鈕click事件後,第一次點選後,一切正常,第二次點選,竟然執行兩次,以後越來越多。 後來檢視文件發現  jquery click  不是 替換原有的function  而是接著新增,所以才會執行次數越來越多。 這有就可以在新增之前要先解除cli

用jquery 繫結一個按鈕click事件後第一點選後一切正常第二點選竟然執行兩以後越來越多

用jquery  繫結一個按鈕click事件後,第一次點選後,一切正常,第二次點選,竟然執行兩次,以後越來越多, 後來檢視文件發現  jquery click  不是 替換原有的function  而是接著新增,所以才

jQuery attr方法 第一有效第二無效問題

例如設定全選: $(function(){ //設定全選反選 $("#all").click(function(){ if(this.checked){ $("input[name='id'

圖片上傳第一觸發第二不觸發的問題

<input type="file" name="file" class="upload__input" @change="change($event)" >檔案上傳點選一次執行change事件,第二次點選相同的檔案會上傳不成功。只需要在change(event){  執行上傳的程式碼; let

輸入兩密碼第二第一不一致要求重新輸入的while迴圈

System.out.println("請輸入密碼:");// 輸入其他比如字串,且重新輸入   int mm1 = in.nextInt();   while (true) {    System.out.println("請再次確認密碼:");// 如果和第一次密碼輸入

android點選事件第一無效第二才響應的問題

今天碰到的問題,android的標題欄一個回退button,每次進入的時候第一次點選無效,一直到第二次點選時才響應,然後把程式碼copy到系統的回退按鈕裡面,結果每次都能響應,後面想了想,應該跟焦點有關係 第一次點選的時候相當於獲取焦點,第二次點選的時候才響應點

C 關於相鄰字串常量自動合併的標準新舊標準新舊風格陷阱

如果一個字串太長了,我們需要把它分行來寫,舊式風格是這樣來做的: 1 #include<stdio.h> 2 #include<stdlib.h> 3 int main() 4 { 5 printf( "I love yo

FPGA FIR 濾波器之 Hilbert Transform 的係數資料Filter Coefficient Data

Hilbert Transform The impulse response for a 10-term approximation to a Hilbert transformer is show

FPGA FIR 濾波器之 Interpolated Filter 的係數資料Filter Coefficient Data

Interpolated Filter  A previous section explained that an IFIR filter is similar to a conventional FIR, but with the unit delay operator

Solidityinternal、private、external、public區別測試後整理

public與private 對於public和private,相信學過其他主流語言的人都能明白: public修飾的變數和函式,任何使用者或者合約都能呼叫和訪問。 private修飾的變數和函式,只能在其所在的合約中呼叫和訪問,即使是其子合約也沒有許可權訪問。 external和i

LeetCode967. Numbers With Same Consecutive Differences 解題報告Python & C++

作者: 負雪明燭 id: fuxuemingzhu 個人部落格: http://fuxuemingzhu.cn/ 目錄 題目描述 題目大意 解題方法 DFS 日期 題

最新版本react元件生命週期詳解v16.3.1

16版本的react對元件的生命週期函式進行了一些修改,在每個react元件中都有以下幾個生命週期方法~我們需要在不同階段進行討論。為了良好的閱讀體驗,請檢視github原文 元件生命週期概述 1.初始化 在元件初始化階段會執行 1. const

Spark Streaming接入HDFS的資料Local模式使用Scala語言

Spark Streaming接入HDFS的資料模擬一個wordcount的功能,結果列印到控制檯,使用Local模式,使用Scala語言。 專案目錄 pom.xml <project xmlns="http://maven.apache.org/POM/4.

MySQLWindows系統下安裝MySQL 5.6.37壓縮包方式

Windows系統下安裝MySQL 5.6.37(壓縮包方式) 1、下載安裝介質 安裝介質:mysql-5.6.37-winx64.zip 下載地址:http://blog.csdn.net/kerafan/article/details/780018492、解壓安裝介質

00面向ArcGIS的Python程式設計——常見錯誤大全後續更新中......

1、縮排錯誤,導致Parsing error IndentationError: unexpected indent (line 3)錯誤。 2、注意>>>和...的區別 3、在使用指令碼執行地理處理工具,例如裁剪(clip)工具時,如果輸入

手把手JavaWeb 入門級專案實戰 -- 文章釋出系統 第五節

在上一節中,我們成功將資料從前臺的JSP頁面傳遞到了controller層,但是還沒有寫service層,老實說還有很多工作沒有,尤其是和資料庫的連結方面的,所以,這一節,我們專門來處理一下關於資料庫連線方面的東西。 01 序言 你可能之前聽過了很多新名詞,比如資料來