我们在项目开发过程中,会经常使用到富文本编辑器。GeneXus内置的富文本编辑器FCK Html Editor使用起来非常方便,只要将页面变量的控件类型(Control Type)选择为FCK Html Editor即可。
如下图所示:
![3465f5fcd85d1129f88affa9f735c68f.png](https://i-blog.csdnimg.cn/blog_migrate/1b3ed783a1e3c96d1782f887137ab058.jpeg)
运行效果如下:
![c294c3d0759fa92aa3b02a6a7ae56002.png](https://i-blog.csdnimg.cn/blog_migrate/0717a0b2294e82df8665ab4aac4b4475.jpeg)
GeneXus的富文本编辑器集成的是CKEditor 4,而CKEditor是非常强大且可以扩展很多功能的,那么在GeneXus中如何对富文本编辑器进行功能扩展呢?
我们以一个实例来说明吧。现在默认的富文本编辑器是没有设置行高的这个功能的,我们在CKEditor是可以搜索到Line Height(https://ckeditor.com/cke4/addon/lineheight)这个插件的,接下来我们看一下如何将它加入到GeneXus的富文本编辑器中。
![554132eac27fd18c6ebf81c061aca87e.png](https://i-blog.csdnimg.cn/blog_migrate/4143dced7544715b4e5ada6c6e54e546.jpeg)
1. 下载Line Height插件,然后复制到代码目录下CKEditor控件的plugins文件夹中。
例如,我选择的Java环境进行测试,如下图所示。
![671fa7815d3d4380490e634e4fd5a7c3.png](https://i-blog.csdnimg.cn/blog_migrate/3153a45a13b06c71a1ee2e14f89be6b8.jpeg)
2. 新建一个js文件,例如myconfig.js,里面添加代码:
CKEDITOR.config.extraPlugins = 'lineheight';
将文件放在CKeditor控件目录下,如下图所示:
![27f78328e89a3b52dc256f0b033b614a.png](https://i-blog.csdnimg.cn/blog_migrate/0c59361570181f5651849db1c5c512c9.jpeg)
3. 在FCK Html Editor控件的Custom Configuration属性关联刚刚建立的js文件。
4. 然后运行就可以啦,运行效果如下。可以看到我们页面上的富文本编辑器的工具栏中就多了一个行间距的设置功能。
![f3f10c6b6a096b78e0c56972ea6f513b.png](https://i-blog.csdnimg.cn/blog_migrate/07336cb0890e1a2297c61f2a0f48964f.jpeg)
除此之外呢,我再补充说明几点:
1) 我们是可以一次添加很多插件的,只需要在myconfig.js文件中加入对应的配置代码就可以了,CKEditor有很多的扩展功能,大家可以根据自己的需要进行下载使用;
2) 在实际使用过程中,我会把myconfig.js文件放在GeneXus的文件中,这样此js文件就会自动复制到指定的目录,就不用担心将来忘记了。如下图:
![e8d14707593659fbe3f4e63ef3e9428b.png](https://i-blog.csdnimg.cn/blog_migrate/e7b5e786e4d067586f2a6022eb8f2173.jpeg)
3) 上面例子中的LineHeight插件,我下载下来后,默认显示是英语的,我看了一下源代码,加入了中文,供大家参考。
●在LineHeight对应的plugin.js文件中,加入中文标识
![b5dc723c5d6f8156fc4da586d3e61d1c.png](https://i-blog.csdnimg.cn/blog_migrate/8e638dfbd8e481ee619258810a8dac86.jpeg)
●在语言包中,加入需要翻译的中文(参考它自带的其他语言文件格式,修改一下即可)
![52ab555b55a941f96215ad610c5ed793.png](https://i-blog.csdnimg.cn/blog_migrate/9e0240bf2c85bd6c160b9148e9df58ef.jpeg)
此篇文章参考的Wiki链接:
https://wiki.genexus.com/commwiki/servlet/wiki?27961,Custom%20configuration%20of%20FCK%20HTML%20Editor