删除CKEditor'中的htmlPreview;s图像插件

Remove htmlPreview in CKEditor's image plugin

本文关键字:图像 插件 htmlPreview 中的 删除 CKEditor      更新时间:2023-09-26

我在CKEditor的图像插件中隐藏预览元素时遇到问题。我需要一个非常简单的图像对话框,只有图像源的输入字段和用于图像上传的按钮。因此,我使用这些自定义配置设置删除了不必要的元素:

CKEDITOR.on( 'dialogDefinition', function( ev )
{
    var dialogName = ev.data.name;
    var dialogDefinition = ev.data.definition;
    if ( dialogName == 'image' ){
        dialogDefinition.removeContents( 'advanced' );
        dialogDefinition.removeContents( 'Link' );
        var infoTab = dialogDefinition.getContents( 'info' );
        infoTab.remove( 'ratioLock' ); 
        infoTab.remove( 'txtHeight' );          
        infoTab.remove( 'txtWidth' );          
        infoTab.remove( 'txtBorder'); 
        infoTab.remove( 'txtHSpace'); 
        infoTab.remove( 'txtVSpace'); 
        infoTab.remove( 'cmbAlign' ); 
        infoTab.remove( 'txtAlt' ); 
    }
}); 

当我试图隐藏htmlPreview元素时,问题就开始了。如果我简单地添加infoTab.remove( 'htmlPreview ' );,就会出现一个错误:Uncaught TypeError: Cannot call method 'setStyle' of null,因为已删除元素的代码依赖性。我在谷歌上搜索了很多,似乎有两种方法可以解决这个问题——手动编辑那里写的插件源代码(

我想唯一的解决方案是删除所有javascript函数从引用这些html对象的image/dedialogs/image.js您删除了。

我试着遵循这个建议,但无法编辑源文件而不会出现后续错误)或者写我自己的。当然,我可以简单地添加一些css规则并隐藏元素,但我认为这不是一个好主意。这个问题已经够老了,我相信有一个好的解决方案,但我没能找到。希望你能帮助我。提前谢谢你。

第页。S.我有最新版本的CKEditor-3.6.4。

由于图像对话框的编写方式,如果不进一步调整文件的其余部分以删除其所有引用,则无法轻松删除预览。

我建议你使用我的配置插件(或编写类似的代码),如下所述:http://alfonsoml.blogspot.com.es/2012/04/hide-dialog-fields-in-ckeditor.html

config.hideDialogFields="image:info:htmlPreview";

你可以从我的博客下载插件,或者如果你已经切换到CKEditor 4,将其添加到你的构建中:http://ckeditor.com/addon/confighelper

您可以尝试infoTab.remove( 'htmlPreview' );