【发布时间】:2016-11-23 15:39:35
【问题描述】:
我创建了两个 CKEditor 插件。它们中的每一个都使用一个“Iframe Dialog Field”,这意味着一个对话框被启动并且该对话框的内容是一个网页(你可以将整个对话框想象成一个大的 iframe)。
每个插件都可以独立运行。但是,如果我在同一个 CKEditor 应用程序中使用这两个插件,它们最终都会显示同一个页面,而不是两个不同的页面,尽管它们指向两个不同的页面。我看不出为什么会发生这种情况。有谁知道如何防止这种情况?
为确保没有混淆,“IFrame 对话框字段”是一个对话框,其内容是另一个网页。 文档 - http://ckeditor.com/addon/iframedialog
[ 这与使用“IFrame 对话框”不同,我认为它是一个允许用户向页面添加 iframe 的插件。 文档 - IFrame 对话框:http://ckeditor.com/addon/iframe]
在使用方面,当使用 IFrame Dialog Field 时,您在 addIframe() 命令中指定要加载的页面的 url。这是使用 CKEditor Iframe 对话框的示例 https://gist.github.com/garryyao/1170303
回到我的问题 - 如果我只使用 CKEditor 中的一个插件,它就可以完美运行。每个插件都指向不同的 url,并打开该 url 作为对话框的内容。但是,如果我在我的 CKEditor 中使用这两个插件,虽然我看到每个插件都有不同的图标,但最终都会启动一个指向相同 url 的对话框。取决于我首先启动哪个,这就是两个最终打开的 url。就好像您只允许在 CKEditor 中使用一个 IFrame 对话框字段,而使用的第一个会覆盖所有其他的。
几年前有人问过同样的问题,CKEditor 论坛上没有任何回应。提出问题的人发布了他的解决方案,或者更确切地说是他的解决方法,即完全不使用 IFrame 对话框字段,而是使用常规对话框,然后在其中放置一个 iframe 元素。 http://ckeditor.com/forums/CKEditor-3.x/multiple-iframedialog-plugins-display-same-dialog
这似乎是一个好的解决方法,但它是一种解决方法而不是解决方案。我还没有尝试过,不知道如果我走这条路会遇到什么潜在的问题。除非我别无选择,否则我宁愿修复现有代码而不是重写插件。
任何帮助将不胜感激。
【问题讨论】:
标签: ckeditor ckeditor4.x