CKEditor 5如何从任何小部件/模型/视图获取单击、更新和删除事件
如何获得有关CKEditor 5型号、视图和小部件的单击、更新和删除事件的通知 假设我有一个自定义插件实现,类似于link插件或highlighter插件。现在,我如何获得以下事件CKEditor 5如何从任何小部件/模型/视图获取单击、更新和删除事件,ckeditor,ckeditor5,ng-ckeditor,Ckeditor,Ckeditor5,Ng Ckeditor,如何获得有关CKEditor 5型号、视图和小部件的单击、更新和删除事件的通知 假设我有一个自定义插件实现,类似于link插件或highlighter插件。现在,我如何获得以下事件 当用户单击链接/高亮显示的元素时 当用户更新高亮显示元素的内部内容时 当用户从编辑器中删除整个高亮显示的链接或高亮显示元素时 元素可以是模型元素/视图元素/或小部件。以下是我使用的代码。它必须位于插件的init()方法中。我不知道这是否是正确的方法,但它对我有效(tm) 请注意,如果单击AttributeElem
- 当用户单击链接/高亮显示的元素时
- 当用户更新高亮显示元素的内部内容时
- 当用户从编辑器中删除整个高亮显示的链接或高亮显示元素时
元素可以是模型元素/视图元素/或小部件。以下是我使用的代码。它必须位于插件的init()方法中。我不知道这是否是正确的方法,但它对我有效(tm)
请注意,如果单击AttributeElement(如粗体文本),这似乎会失败。在这种情况下,您可以调用target.parent,直到得到结果。您找到答案了吗?@MTilsted nope
const editor = this.editor;
const model=editor.model;
const editingView=editor.editing.view;
editingView.addObserver( ClickObserver );
const viewDocument = editor.editing.view.document;
this.listenTo( viewDocument, 'click', (event,data) => {
const target=data.target; // This is the view the user clicked on
const modelObj=editor.editing.mapper.toModelElement(target);
// modelObj is the model object for the element the user clicked on. Now you just need to test if clicking on this model is something you are interested in.
// console.log(modelObj);
} );