在XPage下自定义CKEditor(正确的方法)

时间:2014-11-18 12:10:19

标签: ckeditor xpages

我需要使用自定义按钮设置自定义CKEditor的工具栏。

我已经阅读了这些问题/答案并链接了资源:

如果您总是刷新整页,它们的作用是什么。但是,如果您对页面的一部分进行部分刷新 - 包括至少一个富文本控件(CKEditor版本4.3.2) - 部分刷新后CKEditor选择像' Full' 这样的工具栏(我不知道,但我认为默认类型)是要显示的工具栏类型。

问题是整个 dojo-widget - 自定义IBM CKEditor - thing 。它会使您的toolbar道场财产被遗忘/忽略'部分刷新后(但仍然设置!!!)。

任何有经验/知识的人,如何最好地解决这个问题,例如: IBM方式(如果有的话?!?!?)?

我通过更改全局CKEditor JS变量的属性(每次在部分刷新块内执行)来快速解决它:

<xp:scriptBlock id="scriptBlock2">
    <xp:this.value>
        <![CDATA[
            CKEDITOR.config.readOnly = true;
            CKEDITOR.config.removePlugins = 'autogrow';
            CKEDITOR.config.autoGrow_minHeight = 250;
            CKEDITOR.config.autoGrow_maxHeight = 250;
            CKEDITOR.config.toolbarLocation = 'top';

            CKEDITOR.config.toolbar_readonly = [
                { name: 'tools', items: ['Find','Print', 'Preview', 'Maximize']}
            ];
        ]]>
    </xp:this.value>
</xp:scriptBlock>

系统:

  • IBM Domino 9.0.1 FP2(客户端PC上的本地)
  • 正在使用的OpenNTF Domino Framework
  • Windows 7 32位

3 个答案:

答案 0 :(得分:2)

我知道这是一篇旧帖子,但这是一种有效的方法:

CK编辑器使用配置文件。默认情况下,此文件为domino/html/ckeditor/config.js。它包含编辑器的所有设置,包括工具栏。如果通过提供自己的版本(从原始版本复制)并在自己的版本中配置工具栏来覆盖该文件,则即使进行部分刷新,也将始终使用该配置。

要使CK编辑器使用您的自定义配置文件,您需要向xp:inputRichText控件添加dojo属性:

<xp:dojoAttribute
    name="customConfig"
    value="yourConfigFile.js">
</xp:dojoAttribute>

答案 1 :(得分:1)

您可以使用以下方法为CK编辑器添加其他功能:

 <xp:inputRichText id="inputRichText1">
    <xp:this.dojoAttributes>
        <xp:dojoAttribute name="extraPlugins" value="mustache">
        </xp:dojoAttribute>      
    </xp:this.dojoAttributes>
 </xp:inputRichText>

并在JavaScript中添加:

CKEDITOR.plugins.add( 'mustache', ...);

我的博客herehere - Part 2

分为两部分

告诉我们它是怎么回事!

答案 2 :(得分:0)

您可以使用dojo.behavior在页面加载和每次部分刷新后运行JavaScript函数。以下是使用它的示例,尽管此示例是将FontAwesome图像添加到DataView上的类别http://www.intec.co.uk/getting-awesome-category-icons-in-data-views/