我在鹅毛笔中使用内联提及污点,并且在设置选择时使用以下代码来设置选择。
this.quill.deleteText(this.mentionCharPos, this.cursorPos - this.mentionCharPos, Quill.sources.API);
this.quill.insertText(this.mentionCharPos, mentionChar, "mention", render.id, Quill.sources.USER);
this.quill.insertText(this.mentionCharPos + name.length + 1, " ", 'mention', false, Quill.sources.USER);
this.quill.setSelection(this.mentionCharPos + name.length + 2, 0, Quill.sources.SILENT);
this.mentionCharPos -> @位置 名称->提及名称(例如:satya)
当文本被插入到编辑器中时,当我进行退格键时,光标位置在适当的位置,则光标本身处于隐藏状态,如果提供空格,它将显示在编辑器末尾。
我还要添加提及印迹的代码。
import Quill from 'quill';
const Inline = Quill.import('blots/inline');
class MentionBlot extends Inline {
static create(id) {
const node = super.create();
node.dataset.id = id;
node.setAttribute('contenteditable', true);
return node;
}
static value(domNode) {
return domNode.dataset;
}
static formats(node) {
return node.dataset.id;
}
format(name, value) {
if (name === "mention" && value) {
this.domNode.setAttribute("data-id",
value);
} else {
super.format(name, value);
}
}
formats() {
const formats = super.formats();
formats['mention'] =
MentionBlot.formats(this.domNode);
return formats;
}
}
MentionBlot.blotName = 'mention';
MentionBlot.tagName = 'span';
MentionBlot.className = 'mention';
Quill.register({
'formats/mention': MentionBlot
});
如果我将 contenteditable 设置为true,该如何正常显示光标位置,以及如何正常工作。当我将 contenteditable 设置为假时,我将面临此问题。
https://www.dropbox.com/s/6kmmmy1gsidggxt/Screen%20Recording%202019-03-07%20at%2010.08%20AM.mov?dl=0
答案 0 :(得分:0)
我找到了解决方法,在插入提示后插入一个空格:
insertEmbed(range.index, 'mention', value, 'user');
insertText(range.index + 1, "\u00a0", 'user');
没关系。