首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >CKEditor:使用dialogDefinition.onShow()抛出未定义的C.preview

CKEditor:使用dialogDefinition.onShow()抛出未定义的C.preview
EN

Stack Overflow用户
提问于 2012-03-07 16:16:31
回答 2查看 2.8K关注 0票数 2

修改CKEditor 3.6.2并不容易,但是我尽力了。一个仍未解决的问题是:

在config.js中我们有:

代码语言:javascript
代码运行次数:0
运行
复制
CKEDITOR.on( 'dialogDefinition', function( ev ) {
  var dialogName = ev.data.name;
  var dialogDefinition = ev.data.definition;
  if(dialogName == 'image') {
    dialogDefinition.onShow = function () {
        var dialog = CKEDITOR.dialog.getCurrent(); 

        var elem = dialog.getContentElement('info','htmlPreview');  
        elem.getElement().hide();
        // and more stuff to do...
    };

}
});

加载编辑器后,用户上传了图像后,引发以下javascript错误:

代码语言:javascript
代码运行次数:0
运行
复制
Error: C.preview is undefined
Source File: wysiwyg-editor/plugins/image/dialogs/image.js?t=B8DJ5M3
Line: 8

dialogDefinition.onShow似乎导致了这个错误,因为从代码中删除了所有元素,并且只有调用onShow才会弹出错误。使用onLoad确实有效!在其他对话框上使用onShow很好,只有图像对话框不能正常工作。

顺便说一句,我在CKEditor论坛上问过,但没人接。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-28 18:11:51

我在寻找解决方案的时候偶然发现了这个。我想我会发布我最终做了什么来解决它,尽管不是100%的理想。

代码语言:javascript
代码运行次数:0
运行
复制
CKEDITOR.on( 'dialogDefinition', function( ev ) {
  var tab, field, name = ev.data.name,
      definition = ev.data.definition;

  if( name == 'image' )
  {
    tab = definition.getContents( 'info' );
    field = tab.get( 'htmlPreview' );
    field.style = 'display: none';
  }
});

这使得预览窗口可用于处理,只需将其隐藏在对话框窗口中即可。

票数 3
EN

Stack Overflow用户

发布于 2019-02-20 16:21:30

这样使用CKEDITOR.tools.setTimeout():

代码语言:javascript
代码运行次数:0
运行
复制
CKEDITOR.on('dialogDefinition', function(ev) {
    var dialogName = ev.data.name;
    var dialogDefinition = ev.data.definition;
    var dialog = dialogDefinition.dialog;
    if (dialogName == 'image2') {
        dialogDefinition.onShow = CKEDITOR.tools.override(dialogDefinition.onShow, function(original) { 
            return function() {
                original.call(this);
                CKEDITOR.tools.setTimeout( function() {
                    if (dialog.getContentElement('info', 'src').getValue() == '') {
                        dialog.selectPage('Upload');
                    }
                }, 0);
            }
        });
    }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9605154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档