2010-01-20 14 views
15

Ich habe vor kurzem CKEditor zu meiner App hinzugefügt und ich möchte meine eigenen CSS-Stylesheets in den Editor aufnehmen, so dass ich sie im Editor auswählen kann.Hinzufügen von benutzerdefinierten Stilen zu CKEditor

Wie bewerkstellige ich das? Mein Code so sieht weit wie folgt aus:

<script type="text/javascript"> 

    CKEDITOR.replace('editor1',{ 
     uiColor : '#9AB8F3', 
    }); 

</script> 
+4

Sie können benutzerdefinierte Stile ganz einfach einem Editor hinzufügen. [Diese Seite] (http://docs.cksource.com/CKEditor_3.x/Developers_Guide/Styles) zeigt, wie. –

Antwort

-8

Schauen Sie bitte auf @metavida Antwort für eine bessere Antwort als diese

<script type="text/javascript"> 

    CKEDITOR.replace('editor1',{ 

      uiColor : '#9AB8F3', 
      stylesSet.add('default', [ 
       { name: 'My Custom Block', element: 'h3', styles: { color: 'Blue'} }, 
       { name: 'My Custom inline style', element: 'q'} 
      ]);  
    }); 

</script> 

Obwohl, wenn Sie diese verwenden in mehr als einem Ort ist es Am besten schauen Sie sich dies in der Datei stylescombo \ styles \ default.js an und aktualisieren Sie Ihre Datei config.js entsprechend der API.

+8

Aber das ist nicht einmal gültig JS! –

+0

@ Matti was ist nicht speziell? – dove

+3

Ihr Methodenaufruf in der Mitte eines Objektliterals ist nicht gültig. –

5

Wenig spät zur Party hier, aber die Standardstile sind in _source/plugins/styles/styles/default.js. Du könntest das als Style-Config benutzen und Styles hinzufügen und es würde effektiv anhängen.

41
<script type="text/javascript"> 
    // This code could (may be should) go in your config.js file 
    CKEDITOR.stylesSet.add('my_custom_style', [ 
    { name: 'My Custom Block', element: 'h3', styles: { color: 'blue'} }, 
    { name: 'My Custom Inline', element: 'span', attributes: {'class': 'mine'} } 
    ]); 
    // This code is for when you start up a CKEditor instance 
    CKEDITOR.replace('editor1',{ 
    uiColor: '#9AB8F3', 
    stylesSet: 'my_custom_style' 
    }); 
</script> 

Sie können auch die vollständige Dokumentation der stylesSet.add Syntax lesen:

+0

hey op - wählen Sie diese Antwort. – Bosworth99

+0

Der beste Weg ist eigentlich, dies zu verwenden: http://backeditor.com/addon/stylesheetparser siehe meine Antwort unten. –

+0

Ich stimme nicht zu, @joshua.Sie blättern durch jeden Selektor in der CSS-Datei, was bedeutet, dass Sie eine dedizierte Datei für diesen Zweck erstellen. –

8

Wie bereits erwähnt wurde, gibt es eine Seite zu erklären, wie eine Reihe von custom styles einzurichten. Was das kleine Juwel auf dieser Seite versteckt (und nicht wirklich klar) ist, dass anstatt eine benannte Gruppe von Arten erstellen, können Sie die Stile inline in Ihrer Konfiguration definieren, wie folgt aus:

stylesSet : [ 
    { 
     name : 'Green Title', 
     element : 'h3', 
     styles : 
     { 
      'color' : 'Green' 
     } 
    } ], 
13

Dies funktioniert für mich

CKEDITOR.addCss('body{background:blue;}'); 
+0

Genau das, was ich gesucht habe danke. –

+0

Diese Funktion sollte ** vor ** der Erstellung von Editor-Instanzen (aus [Dokumentation] (http://docs.ckeditor.com/#!/api/CKEDITOR-method-addCss)) aufgerufen werden. – Webars

4

Der beste Weg ist dieses Plugin zu verwenden: http://ckeditor.com/addon/stylesheetparser

es Paste innerhalb der 'ckeditor/plugins' Verzeichnis, dann so etwas wie dieses sind in Ihrem ckeditor/config.js ':

config.extraPlugins = 'stylesheetparser'; 
config.contentsCss = '/css/inline-text-styles.css'; 
config.stylesSet = []; 

Wo '/css/inline-text-styles.css' ist ein Pfad zu Ihrem eigenen CSS-Ordner in Ihrem Webroot, außerhalb von ckeditor. Das erspart Ihnen das Mischen von CSS mit Javascript.

+0

Dies scheint, als könnte es hilfreich sein, aber Sie sagen "Ihre eigenen CSS-Ordner" und zeigen dann einen Pfad zu einer Datei. Ist der Pfad abhängig vom Speicherort des ckeditors selbst oder immer von root? Ich kann es nicht zur Arbeit bringen und ich denke, es ist der Weg. – bcsteeve

Verwandte Themen