2016-09-26 90 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); 
      }