编写UEditor插件

  UE.registerUI('beijing', function (editor, uiName) {

        // 注册按钮执行时的command命令
        editor.registerCommand(uiName, {
            execCommand: function () {

                //获得选中文本内容
                //当你点击按钮时编辑区域已经失去了焦点,如果直接用getText将不会得到内容,所以要在选回来,然后取得内容
               
                var range = UE.getEditor('editor').selection.getRange();
                range.select();
                var txt = UE.getEditor('editor').selection.getText();
                //txt有【】时,去掉
                var _value1 = '【'; var _value2 = '】';
                txt = txt.replace(new RegExp(_value1), "");
                txt = txt.replace(new RegExp(_value2), "");
                //去除空格
                // txt = txt.replace(/(^[\s]+|[\s]+$)/g, "");
                txt = txt.replace(/\s/g, "");

                //获得整个文本框内容  getPlainTxt()带格式的
               // var txtquanbu = UE.getEditor('editor').getContentTxt();
                var txtquanbu = UE.getEditor('editor').getPlainTxt();
                txtquanbu = txtquanbu.replace(new RegExp(_value1), "");
                txtquanbu = txtquanbu.replace(new RegExp(_value2), "");
                var _value = "【】";
                var _valueSplit1 = _value.slice(0, 1);
                var _valueSplit2 = _value.slice(1, 2);
                var result = "";

                if (txt.indexOf("【") != -1) {

                    return;
                } else {
                     result = _valueSplit1 + txt + _valueSplit2;
                }
                //返回选中的位置
                var tt = txtquanbu.search(txt);
                //在选中的位置上进行替换
                var value = txtquanbu.replace(txt, result);

                var str = value.replace(/\n/g, "<br\/>");
                
                //写入必须是没有选中的内容和加上【】的内容
                editor.setContent(str);
            }
        });

        // 创建一个button
        var btn = new UE.ui.Button({
            name: uiName,
            title:'加特殊符号',
            onclick: function () {
                editor.execCommand(uiName);
            }
        });

        // 当点到编辑内容上时,按钮要做的状态反射
        editor.addListener('selectionchange', function () {
            if (editor.queryCommandState('bold')) {
                btn.setChecked(true);
            } else {
                btn.setChecked(false);
            }
        });

        return btn;
    });

 效果:

 

转载于:https://www.cnblogs.com/sunliyuan/p/8891670.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值