【问题标题】:Multiple versions of ckeditor on same page同一页面上的多个版本的ckeditor
【发布时间】:2017-10-06 08:13:20
【问题描述】:

有没有办法让多个版本的 ckeditor 库存在于同一页面上而不会与其他版本冲突? jquery 的方式为 jquery.noConflict 模式?

用例是我们组织中有不同的团队构建不同的小部件,其中 2 个正在使用一些分叉和定制的 ckeditor,两者都具有不同的发布版本。目前,当它们在同一页面上发生冲突时,它们就会被破坏。

有人遇到过类似的问题并尝试过解决这个问题吗?

【问题讨论】:

  • 我试过了。由于全局变量,不可能。我建议您构建一个适用于所有人的通用 ckeditor。 ckeditor.com/cke4/builder

标签: javascript ckeditor sideloading


【解决方案1】:

CKEditor 中没有这样的功能。 CKEditor 注册全局变量CKEDITOR,这就是为什么加载另一个版本不起作用的原因。在某种闭包下隐藏全局变量可能会很棘手,并且肯定需要大量的工作。 CKEditor 加载了很多不同的东西(比如一些自定义样式,或者没有缩小的库)。所以你也应该以某种方式照顾它。

您应该能够在单独的 iframe 中加载不同的版本,这将为您提供单独的环境,不同的版本将单独工作。

另一个更方便的选择是只准备一个适用于所有人的版本,并为每个应该不同的实例提供不同的配置。这只会在您的页面上加载一次库。例如,您可以使用config.removePlugins 删除一些插件。您还可以为每个编辑器实例自定义许多其他内容。

【讨论】:

  • 我们也得出了同样的结论。用不同的配置共享同一个编辑器对我们来说不是一个直接的选择,因为我们不能强制其他团队的版本,我们也不想切换到不同的版本,因为每次其他团队升级他们的版本时,我们会必须这样做。 iframe 虽然不是最干净的做法,但目前似乎是一种有效的解决方法
【解决方案2】:

您可以尝试在自己的 iframe 中运行每个版本

【讨论】:

    猜你喜欢
    • 2013-04-15
    • 2012-10-31
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多