在網站中使用UEditor富文本編輯器

UEditor是由百度WEB前端研發部開發的所見即所得的開源富文本編輯器,具備輕量、可定製、用戶體驗優秀等特色。javascript

官網連接html

進入到下載頁面,選擇相應的版本下載前端

這裏咱們使用ASP.NET開發,因此選擇.NET版本。java

將文件解壓後,目錄結構以下:web

將外部js引入到頁面中json

<script src="Assets/js/ueditor/ueditor.config.js" type="text/javascript"></script>
<script src="Assets/js/ueditor/editor_api.js" type="text/javascript"></script>

editor_api.js包含了全部的ueditor的外部引用連接。api

ueditor.config.js包含了ueditor相關的配置,咱們須要修改該配置文件中的參數服務器

// 服務器統一請求接口路徑
  ,serverUrl: URL + "./net/controller.ashx" //上傳文件圖片等服務端處理程序路徑

//工具欄上的全部的功能按鈕和下拉框,能夠在new編輯器的實例時選擇本身須要的從新定義
   , toolbars: [[
            'fullscreen', 'source', '|', 'undo', 'redo', '|',
            'bold', 'italic', 'underline', 'fontborder', 'strikethrough', 'superscript', 'subscript', 'removeformat', 'formatmatch', 'autotypeset', 'blockquote', 'pasteplain', '|', 'forecolor', 'backcolor', 'insertorderedlist', 'insertunorderedlist', 'selectall', 'cleardoc', '|',
            'rowspacingtop', 'rowspacingbottom', 'lineheight', '|',
            'customstyle', 'paragraph', 'fontfamily', 'fontsize', '|',
            'directionalityltr', 'directionalityrtl', 'indent', '|',
            'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', '|', 'touppercase', 'tolowercase', '|',
            'link', 'unlink', 'anchor', '|', 'imagenone', 'imageleft', 'imageright', 'imagecenter', '|',
            'simpleupload', 'insertimage', 'emotion', 'scrawl', 'insertvideo', 'music', 'attachment', 'map', 'gmap', 'insertframe', 'insertcode', 'webapp', 'pagebreak', 'template', 'background', '|',
            'horizontal', 'date', 'time', 'spechars', 'snapscreen', 'wordimage', '|',
            'inserttable', 'deletetable', 'insertparagraphbeforetable', 'insertrow', 'deleterow', 'insertcol', 'deletecol', 'mergecells', 'mergeright', 'mergedown', 'splittocells', 'splittorows', 'splittocols', 'charts', '|',
            'print', 'preview', 'searchreplace', 'drafts', 'help'
  ]]  

 在./net/app_code路徑下,ueditor已經幫咱們寫好了一些經常使用的接口代碼,如上傳文件和圖片app

咱們只須要在./net/config.json文件中對其進行一些設置就可使用webapp

打開config.json,修改上傳圖片配置項(主要修改路徑前綴和保存圖片命名格式)

"imageUrlPrefix": "/assets/js/ueditor/net/", /* 圖片訪問路徑前綴 */
"imagePathFormat": "upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上傳保存路徑,能夠自定義保存路徑和文件名格式 */

上傳文件的配置與其相似,就很少說了

還須要將editor_api.js文件中的路徑修改成本身項目中的路徑

 baseURL = './Assets/js/ueditor/';

下面是html文件的代碼

<div  id="myEditor"></div>

而後是Js代碼

var params = GetRequest(); //獲取url參數
  
  var editor = UE.getEditor('myEditor', {
        //這裏能夠選擇本身須要的工具按鈕名稱,此處僅選擇以下五個
        toolbars: [['source', 'undo', 'redo', 'bold', 'italic', 'underline', 'fontborder', 'strikethrough', '|', 'removeformat', 'formatmatch', 'pasteplain', '|', 'forecolor', 'backcolor', 'insertorderedlist', 'insertunorderedlist', 'selectall', 'cleardoc', '|',
                'rowspacingtop', 'rowspacingbottom', 'lineheight', '|',
        'customstyle', 'paragraph', 'fontfamily', 'fontsize', '|',
        'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', '|', 'touppercase', 'tolowercase', '|',
            'simpleupload', 'insertimage', 'emotion', 'scrawl', 'insertvideo', 'music', 'attachment']],
        //focus時自動清空初始化時的內容
        autoClearinitialContent: true,
        //關閉字數統計
        wordCount: false,
        //關閉elementPath
        elementPathEnabled: false,
        //默認的編輯區域高度
        initialFrameHeight: 300
    })

    if (params.id != "" && params.id != undefined) {
        // editor準備好以後纔可使用 ,否則不能使用setContent(),會報錯 Cannot set property 'innerHTML' of undefined
        editor.addListener("ready", function () {
            $.get("./Handlers/NewsHandler.ashx", { action: "getnewsbyid", id: params.id }, function (data) {
                var json = $.parseJSON(data);
                $("#txtTitle").val(json.Title);
                $("#selType").val(json.Type);
                $("#selStyle").val(json.Style);
                console.log($.parseHTML(json.Content)[0].data);
                if ($.parseHTML(json.Content)[0].data) {
                    editor.setContent($.parseHTML(json.Content)[0].data);
                } else {
                    editor.setContent(json.Content);
                }
            });

        });

    }

附加一下經常使用的操做 

獲取UEditor內容的代碼

 var content = UE.getEditor('myEditor').getContent();

 將後臺獲取的數據設置爲UEditor的內容

      // editor準備好以後纔可使用 ,否則不能使用setContent(),會報錯 Cannot set property 'innerHTML' of undefined
        editor.addListener("ready", function () {
            $.get("./Handlers/NewsHandler.ashx", { action: "getnewsbyid", id: params.id }, function (data) {
                var json = $.parseJSON(data);
                $("#txtTitle").val(json.Title);
                $("#selType").val(json.Type);
                $("#selStyle").val(json.Style);
                console.log($.parseHTML(json.Content)[0].data);
                if ($.parseHTML(json.Content)[0].data) {
                    editor.setContent($.parseHTML(json.Content)[0].data);
                } else {
                    editor.setContent(json.Content);
                }
            });

        });

 

下面是運行效果

相關文章
相關標籤/搜索