需求背景
做一个富文本编辑器,只保留有序列表,无序列表,超链接,普通文本四种形式。
1.quill配置toolbar保留四种形式的工具栏
2.此外,还要防止粘贴时出现不允许的数据格式
解决办法
监听paste粘贴事件,阻断粘贴默认行为,拿到剪切板的值,清洗掉不需要的标签和属性后,自行插入到innerHTML
难点
在自行插入时我们需要知道插入的位置,但是我们的quill或者web api只给我们提供了纯文本的光标索引, 例如光标在input里面选择了某个位置,那么可以在input的onclick回调通过event.tartget.selectionStart获取光标在innerText的索引,如下
<input type="text" id="txt1" value="你好1 你好2 你好3" onclick="getTextCursorIndex()" />
function getTextCursorIndex (){
const txt1 = document.getElementById("txt1")