jQuery对话框中的CKEditor实例

我正在使用jQuery打开一个对话框窗口,其中textarea转换为CKEditor的实例。 我正在使用CKEditor团队提供的jQuery适配器,但是当对话框窗口打开时,我无法与编辑器交互(它已创建,但“null”写在内容空间中,我无法点击任何内容或修改内容)。

这个错误报告似乎说通过使用补丁提供问题是固定的,但它似乎并没有为我工作…

这是我的代码(也许我以编程方式做错了):

HTML:

我的包括(所有内容都包含正确,但也许包括订单问题?):

       

使用Javascript:

 $('#ad_content').ckeditor(); /* snip */ $('#ad_div').dialog( { modal: true, resizable: false, draggable: false, position: ['center','center'], width: 600, height: 500, hide: 'slide', show: 'slide', closeOnEscape: true, autoOpen: false }); $('.analyse_cell').click(function(){ $('#ad_div').dialog('open'); }); 

编辑:经过一些进一步的测试后,我注意到按下工具栏按钮给了我这个错误:

错误:this.document.getWindow()。$未定义源文件:includes / ckeditor / ckeditor.js行:82

我使用带有“show:”选项的回调函数来延迟实例化CKEditor直到“show”动画完成之后。 我发现只需50毫秒即可。

 modal: true, show: { effect: "drop", complete: function() { setTimeout(function(){ $( "#selector" ).ckeditor(); },50); } }, hide: "drop", 

希望这可以帮助。

 $('.analyse_cell').click(function(){ $('#ad_div').dialog({ modal: true, resizable: false, draggable: false, position: ['center','center'], width: 600, height: 500, hide: 'slide', show: 'slide', closeOnEscape: true, autoOpen: false, open: function(event,ui) { $('#ad_content').ckeditor(); }, close: function(event,ui) { CKEDITOR.remove($("#ad_content").ckeditorGet()); } }); }); 

使用最新版本的CKEditor。 解决了它对我来说。 版本3.4.2

只需将此代码段添加到您的文档中,问题就解决了!

 $(document).on('focusin', function(e) { e.stopImmediatePropagation(); }); 

尝试将适配器放在下面。 该修复程序覆盖了适配器。

好吧,由于某种原因,我无法让它工作,但设法通过手动实现相同的function获得相同的效果。

我遇到了同样的问题,由于某种原因,我发现在打开对话框之前将一些文本放入textarea可以解决问题。 不是真正的解决方案,但对我有用。

 $('#ad_content').ckeditor(); /* snip */ $('#ad_div').dialog( { modal: true, /* Your options here. */ }); $('.analyse_cell').click(function(){ // Add some content into textarea. $('#ad_content').val("Enter content here."); $('#ad_div').dialog('open'); }); 

我通过简单地在jQuery UI Dialog构造函数中添加zIndex = -1来解决这个问题

 $('#modalWindow').dialog({ autoOpen: false, modal: true, zIndex : -1}); 

我正在使用jQuery打开一个对话框窗口,其中textarea转换为CKEditor的实例。 我正在使用CKEditor团队提供的jQuery适配器,但是当对话框窗口打开时,我无法与编辑器交互(它已创建,但null写在内容空间中,我无法点击任何内容或修改内容)。

错误:this.document.getWindow()。$未定义源文件:includes / ckeditor / ckeditor.js
行:129

我使用的是版本3.6.2

刚刚通过弹出对话框(显示选项)禁用jQuery UI效果解决了完全相同的问题。

让我永远想象这一点。 现在编辑器的行为符合预期。

神秘主义,但它对我有帮助。 在创建对话框之前,我强制设置空数据

 CKEDITOR.instances['email_text_of_message'].setData('') 

ckeditor ("ckeditor", "~> 3.4")工作正常。

 $("#create_email").click(function(event){ CKEDITOR.instances['email_text_of_message'].setData('') $("#email_body").dialog({ modal: true, minHeight: 720, minWidth: 900, buttons: [ { id: "button_create_email", text: $('#inv_notice16').text(), click: function() { $("#email_body").dialog('close') } }]}); return false; })