2016-09-26 91 views
0

我有我在哪里存储有关数据库中为JSON文本对象动态CSS数据的情况。我需要将相同的css数据映射到CKEditor中的样式。我能够成功通过解析JSON成运行设置样式为加载类到CKEDITOR样式下拉:如何动态地添加CSS来的CKEditor没有css文件

CKEDITOR.stylesSet.add('myStyles',styleObj); 

不幸的是,这并不完全与屏幕上的文字工作,因为CSS不存在的文件。

我还通过附加动态生成的CSS的样式标签成功生成CSS到DOM的头。不幸的是,这仍然不会将生成的实际css连接到CKEDITOR,因为它处于单独的上下文中。

有谁知道我可以文档级别的CSS连接到CKEDITOR实例或生成CSS在CKEDITOR理解的方法吗?我不想为每个需要查看文本对象的用户写一个临时CSS文件到磁盘。

回答

0

我使用CKEDITOR.addCss()函数想通了这个问题的答案。 而不是试图加载CSS到文档头的样式,这个过程可以通过运行CKEDITOR.addCss()函数简单得多。

代码如下:

在JSON找到的每个CSS样式:在循环后

styleObj.push({name:this.name,element:'p',attributes: { 'class':cssClassName}}); 
    var cssSheetString = '.'+cssClassName+' {font-family:'+this.fontFamily+'; font-size:'+fontSize+'; font-weight:'+this.fontStyle+'; text-decoration:'+textDecoration+'; } '; 
    CKEDITOR.addCss(cssSheetString); 

结束然后还添加样式对象:

if(!CKEDITOR.stylesSet.registered.myStyles){ 
       CKEDITOR.stylesSet.add('myStyles',styleObj); 
      }