ckeditor5自定义plugin监听dom事件
时间: 2023-08-08 14:14:14 浏览: 198
要在 CKEditor 5 中为自定义插件添加 DOM 事件监听器,可以使用 `editor.editing.view.document.on()` 方法。
以下是一个示例插件,它在编辑器中添加一个自定义按钮,并为该按钮添加了一个点击事件监听器:
```js
import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
import ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';
export default class MyPlugin extends Plugin {
init() {
const editor = this.editor;
const t = editor.t;
// 添加自定义按钮
editor.ui.componentFactory.add( 'myButton', locale => {
const button = new ButtonView( locale );
button.set( {
label: t( 'My Button' ),
icon: '<my-icon></my-icon>',
tooltip: true
} );
// 添加点击事件监听器
button.on( 'execute', () => {
console.log( 'My Button clicked' );
} );
return button;
} );
}
}
```
在上面的示例中,我们使用 `button.on()` 方法为按钮添加了一个 `execute` 事件监听器。当用户单击按钮时,将会在控制台中输出一条消息。
类似地,您可以使用 `editor.editing.view.document.on()` 方法为任何 DOM 元素添加事件监听器。例如,以下代码将为编辑器中的所有段落元素添加一个 `click` 事件监听器:
```js
editor.editing.view.document.on( 'click', ( evt, data ) => {
if ( data.domTarget.nodeName === 'P' ) {
console.log( 'Paragraph clicked:', data.domTarget );
}
} );
```
阅读全文