CKEditor自定义按钮获取选区文本返回空值怎么办?
我在CKEditor5里加了自定义按钮,点击时想获取当前选中的文本。用了editor.model.document.selection却总是空值,是不是获取方式有问题?试过监听选区变化也没触发…
editor.ui.componentFactory.add('myButton', (locale) => {
return new ButtonView(locale);
// 点击事件里调用:editor.model.document.selection.getRanges()
});
后来改用editor.editing.view.document.selection还是不行,控制台没报错但数据拿不到,到底该怎么正确获取选中的文本内容?
editor.model.document.selection.getSelectedText(),这玩意直接返回选中的纯文本,别整那些花里胡哨的。如果你非得监听选区变化,记得绑定到editor.model.document.selection上,别乱用 view 的 selection。搞定,别想太复杂。
editor.model.document.selection拿选区,但得先确认有没有实际内容被选中。你那个拿不到可能是异步时机问题,点击按钮时立刻获取就行:别用
view.document.selection,那是视图层的,要用 model 层这套才对。