jQuery对话框中的CKEditor实例
我正在使用jQuery打开一个对话框窗口,其中的textarea转换为CKEditor实例。我使用的是CKEditor团队提供的jQuery适配器,但当对话框窗口打开时,我无法与编辑器交互(它已创建,但“null”写在内容空间中,我无法单击任何内容或修改内容) 似乎说,通过使用补丁提供的问题是固定的,但它似乎不适合我 下面是我的代码(可能是我编程时出错了): HTML: 编辑:经过进一步测试后,我注意到按下工具栏按钮会出现以下错误: 错误:此.document.getWindow().$为 未定义的源文件: 包括/ckeditor/ckeditor.js行:82jQuery对话框中的CKEditor实例,jquery,ckeditor,jquery-dialog,Jquery,Ckeditor,Jquery Dialog,我正在使用jQuery打开一个对话框窗口,其中的textarea转换为CKEditor实例。我使用的是CKEditor团队提供的jQuery适配器,但当对话框窗口打开时,我无法与编辑器交互(它已创建,但“null”写在内容空间中,我无法单击任何内容或修改内容) 似乎说,通过使用补丁提供的问题是固定的,但它似乎不适合我 下面是我的代码(可能是我编程时出错了): HTML: 编辑:经过进一步测试后,我注意到按下工具栏按钮会出现以下错误: 错误:此.document.getWindow().$为 未定
试着把适配器放在下面。修复程序正在覆盖适配器。由于某些原因,我无法让它工作,但通过手动实现相同的功能,我成功地获得了相同的效果。我遇到了相同的问题,出于某些原因,我发现在打开对话框之前将一些文本放入文本区域可以达到效果。这不是一个真正的解决方案,但对我有效
$('.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());
}
});
});
$('#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');
});
使用最新版本的CKEditor。帮我解决了。版本3.4.2我正在使用jQuery打开一个对话框窗口,其中文本区域转换为
CKEditor
的实例。我正在使用由CKEditor
团队提供的jQuery适配器,但当对话框窗口打开时,我无法与编辑器交互(它已创建,但null
写入内容空间,我无法单击任何内容或修改内容)
错误:this.document.getWindow().$是未定义的源文件:includes/ckeditor/ckeditor.js行:129
我使用的是3.6.2版,通过在jQueryUI对话框构造函数中添加zIndex=-1解决了这个问题,如下所示
$('#modalWindow').dialog({ autoOpen: false, modal: true, zIndex : -1});
刚刚通过在弹出对话框(显示选项)上禁用jQuery UI效果解决了完全相同的问题
我花了很长时间才弄明白。现在编辑器的行为符合预期。我使用了一个带有“show:”选项的回调函数来延迟实例化CKEditor,直到“show”动画完成。我发现只要50毫秒就可以了
modal: true,
show: {
effect: "drop",
complete: function() {
setTimeout(function(){
$( "#selector" ).ckeditor();
},50);
}
},
hide: "drop",
希望这有帮助。神秘主义,但对我有帮助。 在创建对话框之前,我强制设置空数据
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;
})
只需将此代码段添加到您的文档中,问题就解决了
$(document).on('focusin', function(e) {
e.stopImmediatePropagation();
});
我移动了适配器下方的固定件,并尝试将其完全移除,但两者似乎都没有效果。我点击了一些按钮,我得到了这个错误:错误:this.document.getWindow().$是未定义的源文件:includes/ckeditor/ckeditor.js行:82希望这能让我们了解真正的问题是什么:)(非常感谢BTW)请分享哪些方面是手工编码的,这样我们也可以利用它。我创建了一个div,它定位在整个视口上,并将ckeditor嵌入其中。它并不优雅,也没有使用jQuery的任何奇特功能,所以我认为它不值得包括在内。。。我绕过了这个问题,但没有解决。使用CK编辑器和UI对话框对我不起作用。。。
CKEDITOR.instances['email_text_of_message'].setData('')
$("#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;
})
$(document).on('focusin', function(e) {
e.stopImmediatePropagation();
});