Kentico CKEditor动态配置样式集

时间:2016-09-14 05:43:31

标签: kentico ckeditor.net

我正在使用Kentico 9,我希望能够在不同的页面上使用不同的CK编辑器样式集。我已将样式集添加到styles.js文件中,如下所示。

CKEDITOR.stylesSet.add("mystyles", [{ name: "testone", element: "p" }]);

然后在页面中我根据CK Editor网站添加了一些JS。

if (CKEDITOR.currentInstance) {
    CKEDITOR.currentInstance.config.stylesSet = "mystyles";
}

当我加载包含CK编辑器的页面时,样式下拉列表包含默认样式集,而不是我定义的自定义样式集。

有谁知道如何实现这个目标?

4 个答案:

答案 0 :(得分:0)

如果我没记错,您需要在 config.js (CMSAdminControls / CKEditor / config.js)下拉列表中定义新的工具栏。

类似的东西:

config.toolbar_Basic = [
['Bold', 'Italic', '-', 'NumberedList', 'BulletedList', '-', 'InsertLink', 'Unlink']
];

另一件事 - 您需要在 Webparts 应用程序>中为此下拉列表添加新选项。 EditableText webpart>属性> HTMLAreaToolbar>数据源 enter image description here

答案 1 :(得分:0)

这是您需要阅读的documentation

下拉样式在CMS\CMSAdminControls\CKeditor\styles.js中定义,例如:

{ name: 'Italic Title',     element: 'h2', styles: { 'font-style': 'italic' } },

您可以定义样式的名称(名称显示在下拉列表中),然后定义应该应用的元素和样式。

编辑文件后,请确保清除浏览器缓存。 由于大多数Kentico管理界面页面都是嵌套的iframe,因此缓存非常激烈,在清除缓存之前,您的样式可能不会出现。

答案 2 :(得分:0)

嗯,毕竟它只是javascript,所以你可以在一些if语句或某些switch-case中检查url,然后应用你需要的样式。你需要一些代码示例吗?你应该可以在互联网上找到很多这些:)

答案 3 :(得分:0)

以下是我解决问题的方法。我将以下内容添加到styles.js:

CKEDITOR.stylesSet.add("my-styles", [
    { name: "Paragraph", element: "p" },
    { name: "Heading 1", element: "h1" }
]);

然后,在我的网站区域的母版页中,需要使用" my-styles"样式集,我补充道:

<script>window.ckstyleset = "my-styles"</script>

最后,在config.js中我添加了:

var styleset = window.ckstyleset ? window.ckstyleset : "default";

config.stylesSet = styleset;

使用这种方法,我可以自定义下拉列表中列出的样式,具体取决于使用的母版页。