【发布时间】:2011-01-06 20:39:02
【问题描述】:
我正在按照本主题中编写的步骤进行操作:CKEditor, AJAX Save 如果有人按下 AjaxSave 按钮,我会尝试触发自定义的“saved.ckeditor”事件。但我没有成功。
ckeditor/plugins/ajaxsave/plugin.js:
(function(){
var saveCmd =
{
modes : { wysiwyg:1, source:1 },
exec : function( editor )
{
editor.fire('saved.ckeditor');
$(editor).trigger('saved.ckeditor', editor.getData());
alert(editor.getData());
}
}
var pluginName = 'ajaxsave';
CKEDITOR.plugins.add( pluginName,
{
init : function( editor )
{
var command = editor.addCommand( pluginName, saveCmd );
command.modes = { wysiwyg : !!( editor.element.$.form ) };
editor.ui.addButton( 'AjaxSave',
{
label : editor.lang.save,
command : pluginName,
className : 'cke_button_save'
});
}
});
})();
如果我在函数中获取或设置编辑器数据,get 和 set 事件将自动被触发。但我什至无法手动触发“getData.ckeditor”事件。
有什么建议吗?
另一件事:如果编辑器的内容自上次保存后没有更改(它不脏),我如何禁用该按钮?
【问题讨论】:
-
在 jquery 适配器中他们这样做(至少主要是): var a=window.jQuery; a.extend(a.fn,{ckeditorGet:function(){...}}); var e=a(这个); e.trigger('setData.ckeditor',[j]);