我在 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
由于已删除元素的代码依赖性。我用谷歌搜索了很多,似乎有两种方法可以解决这个问题 - 手动编辑插件的源代码there http://cksource.com/forums/viewtopic.php?t=16587 (
我想唯一的解决方案是删除所有 javascript 函数
来自引用这些 html 对象的 image/dialogs/image.js ,其中
你删除了。
我尝试遵循此建议,但无法编辑源文件而不会出现后续错误)
或者写我自己的。当然,我可以简单地添加一些 css 规则并隐藏元素,但我认为这不是一个好主意。
这个问题已经足够老了,我确信有一个好的解决方案,但我没能找到它。
希望你能帮助我。先感谢您。
附:我有最新版本的 CKEditor - 3.6.4。
由于图像对话框的编写方式,如果不进一步调整文件的其余部分以删除其所有引用,则无法轻松删除预览。
我建议您使用我的配置插件(或编写类似的代码),如下所述:http://alfonsoml.blogspot.com.es/2012/04/hide-dialog-fields-in-ckeditor.html 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 http://ckeditor.com/addon/confighelper
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)