Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 侦听ckeditor小部件事件_Javascript_Events_Widget_Ckeditor - Fatal编程技术网

Javascript 侦听ckeditor小部件事件

Javascript 侦听ckeditor小部件事件,javascript,events,widget,ckeditor,Javascript,Events,Widget,Ckeditor,我已经尝试过扩展SimpleBox小部件教程 有一些事件,但我真的不明白。 我的目标之一是,如果小部件中的可编辑字段(例如simplebox标题字段)获得焦点,则触发一个事件。 但不幸的是,我只能在小部件本身聚焦时才能听到: editor.widgets.add('simplebox', { // definitions for // button, template, etc init: function() {

我已经尝试过扩展SimpleBox小部件教程 有一些事件,但我真的不明白。 我的目标之一是,如果小部件中的可编辑字段(例如simplebox标题字段)获得焦点,则触发一个事件。 但不幸的是,我只能在小部件本身聚焦时才能听到:

editor.widgets.add('simplebox', {
            // definitions for
            // button, template, etc
            init: function() {
                this.on('focus', function(ev){
                    console.log('focused this');
                });
            }
        });
或者,如果数据发生更改:

CKEDITOR.plugins.add('simplebox', {
// my plugin code
init: function (editor) {    
    editor.widgets.on( 'instanceCreated', function( evt ) {
        var widget = evt.data;
        widget.on('data', function(evt){
            console.log("data changed");
        });
    });
}
//even more code
});
如何侦听小部件中的可编辑字段? 我面临的另一个挑战是,如果小部件被删除,则触发一个事件。也许有人也知道如何聆听这个事件

如何侦听小部件中的可编辑字段

小部件中的可编辑字段没有事件。它们的行为类似于主可编辑文件,因此当您更改其中的某些内容时,将触发editorchange事件

我面临的另一个挑战是,如果小部件被删除,则触发一个事件

有这样的活动,但你不会觉得它很有用。原因是小部件在删除时并不总是被破坏,因为有很多方法可以做到这一点

如果在选择小部件时按backspace,则会触发“是”-此事件,因为直接在小部件上进行删除。但是,它是在小部件被删除后启动的

如果选择编辑器的整个内容并按backspace键,则浏览器将删除它,因为在这种情况下,浏览器将处理此键。因此,CKEditor实现了一个小型垃圾收集器,它会不时检查哪些小部件实例被删除并销毁。您可以通过更频繁地调用editor.widgets.checkwidgets来增加频率,例如在editorchange上,但它不会改变任何东西。在这两种情况下,事件都是在小部件被删除后触发的