CKEDITOR如何识别滚动事件

时间:2014-03-16 17:04:22

标签: ckeditor

有谁知道如何在CKEDITOR中捕捉'滚动'事件?有很容易识别变化和其他事件,但我无法进行cathc Scroll事件..

CKEDITOR.instances[i].on('change', function() {alert('text changed!');});

但是当想要使用相同的滚动它不起作用

CKEDITOR.instances[i].on('scroll', function() {alert('I am scrolling!');});

有没有人知道一些解决方法?

很多 中号

1 个答案:

答案 0 :(得分:3)

您需要知道的第一件事是CKEditor's instance(您从CKEDITOR.instances对象获得的)不是DOM元素。它确实触发了一些事件,例如changefocusblursave,但它们只是对更复杂事物的捷径或外观。

因此,如果要添加DOM事件侦听器,则需要检索" editable" element(发生编辑的元素)。它可以通过editor.editable()方法访问。然而,关于可编辑元素的棘手问题在于它并不总是可用,它在启动编辑器初始化之后没有准备好,并且编辑器可以用新的元素替换该元素(通常在模式之间切换之后)。因此,编辑器会触发contentDom以通知新的可编辑状态,并且editable具有attachListener方法,与on不同,当可编辑时,{{3}}会清除侦听器。

在文档中解释了使用所有这些方法的方法,并且有代码示例,但只是为了节省您一次:

editor.on( 'contentDom', function() {
    var editable = editor.editable();

    editable.attachListener( editable.getDocument(), 'scroll', function() {
        console.log( 'Editable has been scrolled' );
    });
});

更新:我忘了滚动'事件你必须听取文件。我更新了上面的代码。