Oracle APEX:富文本编辑器在jQuery对话框中不起作用

时间:2014-03-17 09:13:55

标签: jquery oracle modal-dialog ckeditor oracle-apex

我正在使用APEX 4.2.4,我尝试创建一个包含Rick文本编辑器(CKEditor3)的对话框。

我在区域(区域ID:#notification)中添加了富文本编辑器字段,并将style="display:none;"设置为此区域。然后我有一个按钮,当单击它时,它执行以下JS代码并触发模态:

function notification() {
  var jqDialog = $('#notification').dialog(
    { modal: true,
      autoOpen: true,
      width: '500px',
      closeOnEscape: true
    });
}

单击该按钮时,模式将按原样打开,但编辑器的iframe为空(无法单击并添加内容)。

如果我从模态中删除编辑器并只是通过页面加载正常渲染它,我看到编辑器并且它可以编辑而没有问题。但是从我隐藏它的那一刻起(使用display:none;visibility:hidden;),然后使用模式显示它,它就不再可编辑了。

它在Firefox 27.0.1和Chrome 33.0.1750.154 m中不起作用,但它适用于IE 10和11。

1 个答案:

答案 0 :(得分:0)

很可能是一个错误,在那里描述了http://bugs.jqueryui.com/ticket/4727。但就我而言,这个解决方案并不奏效。由于顶点的性质,在< head>中的init ckeditor文件之后立即放置jquery-ui-dialog-patch-ckeditor.js文件是不可能的。标签。唯一的解决方案是:

  1. "页面属性"在区域"当页面加载时执行"写:

    $('#notification').dialog({
        modal: true,
        autoOpen: true,
        width: 500,
        closeOnEscape: true,
        autoOpen: false
    });
    
  2. 然后,在动态动作中,点击事件'点击'对于您的按钮,您可以重新定义对话框选项并打开对话框:

    $('#notification').dialog({
        modal: true,
        autoOpen: true,
        width: 700,
        height: 400,
        closeOnEscape: true,
        autoOpen: false
    });
    
    $('#notification').dialog("open");
    
  3. 适用于所有现代浏览器,包括IE 10和11。