HandyEditor富文本编辑器首行缩进问题

  最近我在开发编辑弹窗中增加一个富文本编辑器功能时,我自己找了一些资料发现常用的富文本编辑器有wangEditor、ckEditor、ueditor等等,发现自己用不习惯。找到一款自己喜欢的富文本编辑器HandyEditor。
  不过后来发现这个编辑器中的缩进只能整个段落缩进,不是很好用。后来前端的同事说可以通过添加样式的方式显示首行缩进,这是个不错的思路,因此找了一些源码在其中添加了一段代码以后就可以了。
  在HandyEditor.min.js中找到HandyEditor_editor这一行,添加ediv.style.textIndent = "27px"这个样式。具体见下图。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  希望可以帮助到需要首行缩进功能的小伙伴,自己也记录一下。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Vue富文本编辑器中实现首行缩进的方法如下: 首先,在_initEditor()方法中注册菜单名,并将该菜单添加到原有菜单中。这可以通过以下代码实现: ```javascript const menuKey = "textIndent"; // 给定菜单名 var editor = new E(this.$refs.editor); // 注册菜单 editor.menus.extend(menuKey, AlertMenu); editor.config.menus = editor.config.menus.concat(menuKey); ``` 然后,在constructor中创建一个菜单,并添加hover文字。这可以通过以下代码实现: ```javascript constructor(editor) { // data-title属性表示当鼠标悬停在该按钮上时提示该按钮的功能简述 const $elem = E.$(`<div class="w-e-menu" data-title="首行缩进" style="z-index:auto;"> <i class="el-icon-s-fold"></i> </div>`); super($elem, editor); } ``` 接下来,我们需要定义一个方法,该方法用于获取选中的DOM元素,判断当前是否已添加首行缩进样式,如果有则取消,如果没有则添加。最后,我们需要恢复选区。这可以通过以下代码实现: ```javascript // 菜单点击事件 clickHandler(value) { const editor = this.editor; const $elems = editor.selection.getSelectionRangeTopNodes(); //$elems——选中完整段落或多个段落——上级节点 if ($elems.length > 0) { $elems.forEach(item => { const $elem = $(item).getNodeTop(editor); //获取选中的上一级节点 const reg = /^(P|H\[0-9\]*)$/; //判断是不是p\h标签 if (reg.test($elem.getNodeName())) { const $elem1 = $elem.elems\[0\]; //获取每一行的带标签内容 if ($elem1.style\["textIndent"\] === "") { //如果此时的样式没有缩进,就添加缩进样式 $elem.css("text-indent", "2em"); } else { //如果此时的样式有缩进,就取消缩进样式 $elem.css("text-indent", ""); } } }); } // 恢复选区 editor.selection.restoreSelection(); this.tryChangeActive(); //菜单高亮 } ``` 这样,你就可以在Vue富文本编辑器中实现首行缩进功能了。 #### 引用[.reference_title] - *1* *2* *3* [wangEditor富文本编辑器(第四章:自定义首行缩进菜单)](https://blog.csdn.net/DW14687/article/details/126102601)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值