有谁知道如何在CKEDITOR中捕捉'滚动'事件?有很容易识别变化和其他事件,但我无法进行cathc Scroll事件..
CKEDITOR.instances[i].on('change', function() {alert('text changed!');});
但是当想要使用相同的滚动它不起作用
CKEDITOR.instances[i].on('scroll', function() {alert('I am scrolling!');});
有没有人知道一些解决方法?
很多 中号
答案 0 :(得分:3)
您需要知道的第一件事是CKEditor's instance(您从CKEDITOR.instances
对象获得的)不是DOM元素。它确实触发了一些事件,例如change
,focus
,blur
或save
,但它们只是对更复杂事物的捷径或外观。
因此,如果要添加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' );
});
});
更新:我忘了滚动'事件你必须听取文件。我更新了上面的代码。