如何安装优化后的ueditor编辑器

网站后台用ueditor编辑器有几个需要优化的点:

  1. 表格拖拽不太灵活
  2. 选择表格的所有文字,无法统一修改字体,大小

在网上偶然发现了一个优化的版本,demo 如下网站

https://qinpeifeng.github.io/ueditor/index.html

这个版本的优点还不止上面两条,详情看这个网址https://www.cnblogs.com/qinpeifeng107/p/13656836.html这里不过多的赘述

本篇文章的目的是,帮助大家怎么将优化后的编辑器移植到自己的项目中

  1. 下载资料

https://pub-0bcde2d11c9842cba1e9d0e248a700a2.r2.dev/ueditor_FM3xXh.tar.gz

  1. 修改配置

    image-20250428172325115

    这里有两种配置“php”或者“asp”

  2. 引用相关文件,对于我自己的项目是这样改一下就可以了

    image-20250428172554277

  3. 官方文档是这样用的

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>

    <head>
    <title>完整demo</title>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <script src='jquery-3.3.1.min.js'></script>
    <script type="text/javascript" charset="utf-8" src="ueditor.config.js"></script>
    <script type="text/javascript" charset="utf-8" src="lang/zh-cn/zh-cn.js"></script>
    <!-- 1.优化功能点,主要是改了ueditor.all.js源码 -->
    <script type="text/javascript" charset="utf-8" src="ueditor.all.js"> </script>
    <!-- 2.通过引用ckeditor,实现完整保留从Excel粘贴过来的格式 -->
    <script src='ckeditor.min.office.js'></script>

    <style type="text/css">
    div {
    width: 100%;
    }
    </style>
    </head>

    <body>
    <div>
    <h1>完整demo</h1>
    <script id="editor" type="text/plain" style="width:1024px;height:500px;"></script>
    </div>
    <div id="btns">
    <div>
    <button onclick="getAllHtml()">获得整个html的内容</button>
    <button onclick="getContent()">获得内容</button>
    <button onclick="setContent()">写入内容</button>
    <button onclick="setContent(true)">追加内容</button>
    <button onclick="getContentTxt()">获得纯文本</button>
    <button onclick="getPlainTxt()">获得带格式的纯文本</button>
    <button onclick="hasContent()">判断是否有内容</button>
    <button onclick="setFocus()">使编辑器获得焦点</button>
    <button onmousedown="isFocus(event)">编辑器是否获得焦点</button>
    <button onmousedown="setblur(event)">编辑器失去焦点</button>

    </div>
    <div>
    <button onclick="getText()">获得当前选中的文本</button>
    <button onclick="insertHtml()">插入给定的内容</button>
    <button id="enable" onclick="setEnabled()">可以编辑</button>
    <button onclick="setDisabled()">不可编辑</button>
    <button onclick=" UE.getEditor('editor').setHide()">隐藏编辑器</button>
    <button onclick=" UE.getEditor('editor').setShow()">显示编辑器</button>
    <button onclick=" UE.getEditor('editor').setHeight(300)">设置高度为300默认关闭了自动长高</button>
    </div>

    <div>
    <button onclick="getLocalData()">获取草稿箱内容</button>
    <button onclick="clearLocalData()">清空草稿箱</button>
    </div>

    </div>
    <div>
    <button onclick="createEditor()">
    创建编辑器</button>
    <button onclick="deleteEditor()">
    删除编辑器</button>
    </div>

    <script type="text/javascript">

    //实例化编辑器
    //建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用UE.getEditor('editor')就能拿到相关的实例
    var ue = UE.getEditor('editor');

    ue.ready(function () {
    var me = this;
    // me.addListener('contentchange', function () {
    // $('table',me.body).colResizable();
    // });

    })

    function isFocus(e) {
    alert(UE.getEditor('editor').isFocus());
    UE.dom.domUtils.preventDefault(e)
    }
    function setblur(e) {
    UE.getEditor('editor').blur();
    UE.dom.domUtils.preventDefault(e)
    }
    function insertHtml() {
    var value = prompt('插入html代码', '');
    UE.getEditor('editor').execCommand('insertHtml', value)
    }
    function createEditor() {
    enableBtn();
    UE.getEditor('editor');
    }
    function getAllHtml() {
    alert(UE.getEditor('editor').getAllHtml())
    }
    function getContent() {
    var arr = [];
    arr.push("使用editor.getContent()方法可以获得编辑器的内容");
    arr.push("内容为:");
    arr.push(UE.getEditor('editor').getContent());
    alert(arr.join("\n"));
    }
    function getPlainTxt() {
    var arr = [];
    arr.push("使用editor.getPlainTxt()方法可以获得编辑器的带格式的纯文本内容");
    arr.push("内容为:");
    arr.push(UE.getEditor('editor').getPlainTxt());
    alert(arr.join('\n'))
    }
    function setContent(isAppendTo) {
    var arr = [];
    arr.push("使用editor.setContent('欢迎使用ueditor')方法可以设置编辑器的内容");
    UE.getEditor('editor').setContent('欢迎使用ueditor', isAppendTo);
    alert(arr.join("\n"));
    }
    function setDisabled() {
    UE.getEditor('editor').setDisabled('fullscreen');
    disableBtn("enable");
    }

    function setEnabled() {
    UE.getEditor('editor').setEnabled();
    enableBtn();
    }

    function getText() {
    //当你点击按钮时编辑区域已经失去了焦点,如果直接用getText将不会得到内容,所以要在选回来,然后取得内容
    var range = UE.getEditor('editor').selection.getRange();
    range.select();
    var txt = UE.getEditor('editor').selection.getText();
    alert(txt)
    }

    function getContentTxt() {
    var arr = [];
    arr.push("使用editor.getContentTxt()方法可以获得编辑器的纯文本内容");
    arr.push("编辑器的纯文本内容为:");
    arr.push(UE.getEditor('editor').getContentTxt());
    alert(arr.join("\n"));
    }
    function hasContent() {
    var arr = [];
    arr.push("使用editor.hasContents()方法判断编辑器里是否有内容");
    arr.push("判断结果为:");
    arr.push(UE.getEditor('editor').hasContents());
    alert(arr.join("\n"));
    }
    function setFocus() {
    UE.getEditor('editor').focus();
    }
    function deleteEditor() {
    disableBtn();
    UE.getEditor('editor').destroy();
    }
    function disableBtn(str) {
    var div = document.getElementById('btns');
    var btns = UE.dom.domUtils.getElementsByTagName(div, "button");
    for (var i = 0, btn; btn = btns[i++];) {
    if (btn.id == str) {
    UE.dom.domUtils.removeAttributes(btn, ["disabled"]);
    } else {
    btn.setAttribute("disabled", "true");
    }
    }
    }
    function enableBtn() {
    var div = document.getElementById('btns');
    var btns = UE.dom.domUtils.getElementsByTagName(div, "button");
    for (var i = 0, btn; btn = btns[i++];) {
    UE.dom.domUtils.removeAttributes(btn, ["disabled"]);
    }
    }

    function getLocalData() {
    alert(UE.getEditor('editor').execCommand("getlocaldata"));
    }

    function clearLocalData() {
    UE.getEditor('editor').execCommand("clearlocaldata");
    alert("已清空草稿箱")
    }
    </script>
    </body>

    </html>