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; })