有没有一种方法可以为编辑器的每个实例覆盖CKEditor的配置文件?

9

我设置了全局的尺寸和高度

CKEDITOR.editorConfig = function( config )
{
  config.height = '400px';
  config.width = '600px';
  ...

我想仅更改单独页面上编辑器的高度和宽度。有其他人做到了吗?

2个回答

14

可以的。在页面上创建编辑器时,您可以进行覆盖。

CKEDITOR.replace(editorName, {
            height: 448,
            width: 448,
            customConfig: '/path/to/yourconfig.js'
});

事实上,作为性能建议,您可以将所有配置选项放在此处,并将配置文件的加载分开保存。您可以在自己的共享JavaScript文件中执行此操作,并针对页面覆盖特定值的参数化。

更新:回复评论

可以像使用任何其他设置一样使用单独的配置文件(请参阅customConfig)。如果您不想加载任何自定义配置,请使用

customConfig: ''

谢谢Dove!真的感激! - Trip
针对性能建议,我尝试了那个,但是我的语法可能有问题?CKEDITOR.replace(editorName, config),其中config是一个名为otherConfig.js的配置文件,与config.js位于同一目录下。 - Trip
这个能在页面上的多个CKEditor实例中工作吗?似乎如果您有多个实例,每个实例都有自己的配置,那么最后创建的实例的配置文件将应用于所有其他实例...或者我只是个白痴 :) - nokturnal
@nokturnal,您可以在同一页上为多个实例设置不同的配置。从上面进行快速的合理性检查可以通过调整宽度或高度来完成。 - dove
当我调用replace时,它会抛出“未捕获的编辑器实例“note1681”已附加到提供的元素。”我做错了什么? - Michael

1

您可以在 instanceReady 事件中调整编辑器大小:

CKEDITOR.on 'instanceReady', (evt) ->
  setCustomHeight(evt.editor)

setCustomHeight = (editor) ->
  height = $(editor.element.$).attr('height')
  return unless height

  editor.resize('100%', height)

现在您需要在想要自定义高度的文本区域上指定height属性: <textarea id="my-editor" height="250"></textrarea>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接