CKEDITOR:如何在每个 SetData 之后设置“contentdom”
CKEDITOR : How do set `contentdom` after every SetData
我正在创建一个 CKEditor 插件,但我遇到了一些问题。
我的插件型号:
CKEDITOR.plugins.add("myplugin", {
//for lang,require,icon
init:function(a){
editor.on('contentDom', function () {
editor.document.on('key', function (evt) {
console.log("Key Pressed");
});
});
}
});
这 工作正常。但是,我的问题是 setData
。
我在用户单击文件时设置数据。
在 setData
之后,key
事件不工作。
有没有办法在插件文件中的每个 setData()
之后将侦听器附加到文档?
CKEditor 中使用的其他类型的方法是什么,例如 init
?
(或)
有什么方法可以setData()
而不影响contentdom,key
事件吗?
请将侦听器添加到编辑器,而不是文档。这样当文档被删除时它不会被删除:
editor.on( 'instanceReady', function( e ) {
editor.on( 'key', function( e ) {
console.log('test');
});
});
请看:https://docs.ckeditor.com/ckeditor4/latest/api/CKEDITOR_editor.html#event-key
终于找到答案了
参考以下问题
CKEDITOR.setData 防止附加带有 .on 函数的事件
然后转到 CKEditor 文档页面中的文档。
最后我的代码是这样的,
editor.on('contentDom', function () {
var editable = editor.editable();
editable.attachListener(editable, 'keyup', function (evt) {
console.log('for key events');
});
editable.attachListener(editable, 'mousedown', function (evt) {
console.log('for click events');
});
});
而且效果很好。
我正在创建一个 CKEditor 插件,但我遇到了一些问题。
我的插件型号:
CKEDITOR.plugins.add("myplugin", {
//for lang,require,icon
init:function(a){
editor.on('contentDom', function () {
editor.document.on('key', function (evt) {
console.log("Key Pressed");
});
});
}
});
这 工作正常。但是,我的问题是 setData
。
我在用户单击文件时设置数据。
在 setData
之后,key
事件不工作。
有没有办法在插件文件中的每个 setData()
之后将侦听器附加到文档?
CKEditor 中使用的其他类型的方法是什么,例如 init
?
(或)
有什么方法可以setData()
而不影响contentdom,key
事件吗?
请将侦听器添加到编辑器,而不是文档。这样当文档被删除时它不会被删除:
editor.on( 'instanceReady', function( e ) {
editor.on( 'key', function( e ) {
console.log('test');
});
});
请看:https://docs.ckeditor.com/ckeditor4/latest/api/CKEDITOR_editor.html#event-key
终于找到答案了
参考以下问题
CKEDITOR.setData 防止附加带有 .on 函数的事件
然后转到 CKEditor 文档页面中的文档。
最后我的代码是这样的,
editor.on('contentDom', function () {
var editable = editor.editable();
editable.attachListener(editable, 'keyup', function (evt) {
console.log('for key events');
});
editable.attachListener(editable, 'mousedown', function (evt) {
console.log('for click events');
});
});
而且效果很好。