2016-09-26 11 views
0

データベース内のテキストオブジェクトに関する動的CSSデータをjsonとして保存する状況があります。同じCssデータをCKEditorのスタイルにマップする必要があります。私は正常に実行することによって設定されたスタイルにJSONを解析することにより、CKEditorバージョンのスタイル]ドロップダウンにクラスをロードすることができる午前:CSSがファイルとして存在していないためcssファイルなしでcssをckeditorに動的に追加する方法

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

残念ながら、これは完全に画面上のテキストでは動作しません。 。

また、動的に生成されたCSSをスタイルタグに追加することによって、domの先頭にCSSを生成することに成功しました。残念ながら、CKEDITORに生成された実際のCSSは別のコンテキストにあるため、まだ接続されていません。

CKEDITORインスタンスにドキュメントレベルのCSSを接続する方法と、CKEDITORが理解できる方法でCSSを生成する方法が分かっていますか?私はテキストオブジェクトを表示する必要があるすべての単一のユーザーのために一時的な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); 
      } 
関連する問題