CKEditor显示已格式化(使用CKEditor CSS)数据库中的HTML

时间:2018-07-19 15:14:23

标签: javascript ckeditor

这是我的第一篇文章,所以我想加入这个社区很高兴,我会尽力帮助别人,但我现在是需要帮助的人。

-问题

我无法正确显示使用CKE.getData()检索,保存到数据库并显示在文章中的文本的样式。

-什么时候起作用?

当我包含此CSS时:

<link rel="stylesheet" href="\js\ckeditor\contents.css">

在我的base.html.twig <head>标记中,这会更改网站的CSS。

-我需要做什么?

我需要做些什么以避免冲突?还是有什么方法可以渲染文本而不进行编辑?像CKEDITOR.render(tagId)

-一些图像: enter image description here

enter image description here

考虑

威克多

1 个答案:

答案 0 :(得分:1)

请参阅: https://docs.ckeditor.com/ckeditor4/latest/guide/dev_framed.html#content-styles-vs-page-styles https://docs.ckeditor.com/ckeditor4/latest/api/CKEDITOR_config.html#cfg-contentsCss

如果您使用的是经典CKEditor,则其内容将保存在带有单独文档的iframe中。为了设置内部文档的样式,CKEditor附加了contents.css。由于单独的CSS文件中的内部样式不会与HTML一起保存或合并为HTML,因此在contents.css内部使用与您希望在目标页面上看到的样式相同的样式(将使用保存的内容)很重要。

这不是CKEditor错误,只是您需要在应用程序内部应用的另一种方法。

如果要为不同的页面创建内容,则可以创建一个大的contents.css文件,或者在任何样式冲突的情况下创建多个CSS文件,您可以根据某些逻辑动态加载这些CSS文件(这需要编写一些代码使用contentsCss设置来处理。请注意,在动态CSS切换的情况下,您不想在contentsCss文件内使用config.js,而是直接在HTML页面上的实例配置中使用,您可以在其中使用服务器端标记“吐出”正确的配置用于CKEditor实例,例如

var editor = CKEDITOR.replace( 'editor1',{
    language : 'en',
    // other configuration settings
    // ...
    contentsCss : [ '/css/mysitestyles.css', '/css/anotherfile.css' ]
}

您可以使用服务器端标记,该标记将返回整个编辑器配置,或者仅在渲染HTML时仅返回这部分contentsCss : [ '/css/mysitestyles.css', '/css/anotherfile.css' ]甚至正确的文件路径。