我正在尝试为 CKEditor 实现我自己的图像插件替换。我从http://docs.ckeditor.com/#!/guide/plugin_sdk_sample_1的教程中引导了一个实现
现在,唯一可编辑的属性是src
在下面的代码中,$.imagebrowser.openPopup(callback)
一旦用户做出选择,就会打开一个弹出窗口,调用回调,并使用图像的新 src 属性。
这对于插入和编辑都很好,但是在撤消/重做集成中存在故障。通过双击对 src 属性所做的修改在发生其他修改(如键入文本)之前是不可撤消的。然后对src属性的修改,好像是在undo/redo栈中适当的集成了,我可以undo和redo了。
知道我做错了什么吗?
CKEDITOR.plugins.add( 'customimage', {
// Register the icons. They must match command names.
icons: 'customimage',
// The plugin initialization logic goes inside this method.
init: function( editor) {
editor.on( 'doubleclick', function( event ) {
if(event.data.element.getName() == "img") {
$.imagebrowser.openPopup(function(src) {
event.data.element.setAttribute("src", src);
});
}
});
editor.addCommand( 'insertCustomimage', {
allowedContent: ['img[!src,alt]{width,height,float,margin}'],
// Define the function that will be fired when the command is executed.
exec: function() {
$.imagebrowser.openPopup(function(src) {
editor.insertHtml('<img src="' + src + '" style="width: 400px; height: auto; float: left; margin: 10px 10px;">');
});
}
});
// Create the toolbar button that executes the above command.
editor.ui.addButton( 'Customimage', {
label: 'Image',
command: 'insertCustomimage',
toolbar: 'insert'
});
}
});