富文本編輯器(wangEditor)

     近期在產品的開發工做中遇到要使用富文本編輯器的地方。因而對比了幾款編輯器, 最後選擇了wangEditor。 javascript

  優勢:輕量、簡潔、界面美觀、文檔齊全。   缺點: 相較於百度ueditor等編輯器功能較少。 文檔地址:https://www.kancloud.cn/wangfupeng/wangeditor3/332599html

  使用方式:java

  1. 建立一個容器:ajax

  

  <div id="editor">  </div>

                  

  2.引入js文件後端

  

<script src="~/Editor/wangEditor.js"></script>

  3.初始化服務器

 

  // 富文本編輯器
    var E = window.wangEditor;
    var editor = new E("#editor")
   editor.create()

  

 

 

   4.上傳圖片網絡

   支持網絡圖片與本地上傳編輯器

   網絡圖片直接輸入地址便可。函數

   本地上傳默認是關閉的。分爲Base64與上傳至服務器。post

   4.1 Base64格式

     開啓本地上傳Base64

    

 // 啓用"上傳圖片"tab base64格式
    editor.customConfig.uploadImgShowBase64 = true;

      開啓以後直接拖拽或手動選擇上傳便可。

    

 

 

     Base64碼

    

 

 

     

    4.2 上傳至服務器

    配置上傳接口,可是不能與Base64同時配置。

editor.customConfig.uploadImgServer = '/Storage/Upload' 

    js上傳配置:用的官方文檔的默認配置。 詳情能夠參考官網文檔:https://www.kancloud.cn/wangfupeng/wangeditor3/335782

    注:全部的配置代碼都須要放在   editor.create()   以前。

 
 editor.customConfig.uploadImgHooks = {
        before: function (xhr, editor, files) {
            // 圖片上傳以前觸發
            // xhr 是 XMLHttpRequst 對象,editor 是編輯器對象,files 是選擇的圖片文件

            // 若是返回的結果是 {prevent: true, msg: 'xxxx'} 則表示用戶放棄上傳
            // return {
            //     prevent: true,
            //     msg: '放棄上傳'
            // }
        },
        success: function (xhr, editor, result) {
            // 圖片上傳並返回結果,圖片插入成功以後觸發
            // xhr 是 XMLHttpRequst 對象,editor 是編輯器對象,result 是服務器端返回的結果
        },
        fail: function (xhr, editor, result) {
            console.log(result)
            // 圖片上傳並返回結果,但圖片插入錯誤時觸發
            // xhr 是 XMLHttpRequst 對象,editor 是編輯器對象,result 是服務器端返回的結果
        },
        error: function (xhr, editor) {
            // 圖片上傳出錯時觸發
            // xhr 是 XMLHttpRequst 對象,editor 是編輯器對象
        },
        timeout: function (xhr, editor) {
            // 圖片上傳超時時觸發
            // xhr 是 XMLHttpRequst 對象,editor 是編輯器對象
        },

        // 若是服務器端返回的不是 {errno:0, data: [...]} 這種格式,可以使用該配置
        // (可是,服務器端返回的必須是一個 JSON 格式字符串!!!不然會報錯)
        customInsert: function (insertImg, result, editor) {
            // 圖片上傳並返回結果,自定義插入圖片的事件(而不是編輯器自動插入圖片!!!)
            // insertImg 是插入圖片的函數,editor 是編輯器對象,result 是服務器端返回的結果

            // 舉例:假如上傳圖片成功後,服務器端返回的是 {url:'....'} 這種格式,便可這樣插入圖片:
            var url = result.Url
            insertImg(url)

            // result 必須是一個 JSON 格式字符串!!!不然報錯
        }
    }

  

    4.3 後端接口

      只需將文件的最終存儲路徑按指定的格式/或自定義格式放回便可。

    

 

 

 

    

 

 

 

     5.將編輯器內的數據傳遞給後臺方法

     我這裏是先將編輯器內的數據賦值給 textarea ,而後使用ajax的方式提交textarea的數據。

     5.1 建立textarea 並隱藏

     

<textarea id="text1" style="width:100%; height:200px;display:none;"></texta

     5.2 在js中配置

     

        // 隱藏的文本域
       var $text1 = $('#text1')
       // 監聽編輯器內容的變化,html爲變化後的數據
       editor.customConfig.onchange = function (html) {
        // 監控變化,同步更新到 textarea
        $text1.val(html)
    }

     5.3 提交數據並在後臺保存

     添加一個按鈕

    

<button id="btnSubmit2">保存 </button>

    ajax提交

    

 $("#btnSubmit2").click(function () {
        // 文本域的內容
        var text1 = $('#text1').val();
        $.ajax({
            type: "post",
            data: {
                "editorHtml": text1
            },
            url: "/Editor/Save",
            success: function (data) {
               console.log(data)
        });
    })

     

      6.其餘配置及功能請直接訪問文檔:

      https://www.kancloud.cn/wangfupeng/wangeditor3/335782

相關文章
相關標籤/搜索