CKEditor 多个 iframe 对话框字段显示相同的对话框
CKEditor multiple iframe dialog fields show the same dialog
我创建了两个 CKEditor 插件。它们每个都使用一个"Iframe Dialog Field",表示启动一个对话框,该对话框的内容是一个网页(您可以将整个对话框想象成一个大的iframe)。
每个插件都可以完美地独立运行。但是,如果我在同一个 CKEditor 应用程序中使用这两个插件,它们最终都会显示相同的页面,而不是两个不同的页面,尽管它们指向两个不同的页面。我看不出为什么会发生这种情况。有谁知道如何防止这种情况?
为确保不会混淆,"IFrame Dialog Field" 是一个对话框,其内容是另一个网页。
文档 - http://ckeditor.com/addon/iframedialog
[ 这与使用 "IFrame dialog" 不同,我认为后者是一个允许用户向页面添加 iframe 的插件。
文档 - IFrame 对话框:http://ckeditor.com/addon/iframe]
在使用方面,当使用 IFrame 对话框字段时,您可以在 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
这似乎是一个不错的解决方法,但它只是一种解决方法,而不是解决方案。我还没有尝试过,并且不知道如果我沿着这条路走下去我会 运行 遇到什么潜在的问题。除非别无选择,否则我宁愿修复现有代码也不愿重写插件。
如有任何帮助,我们将不胜感激。
由于我没有找到任何进一步的信息,也没有在这里收到任何答案,所以我最终采用了问题末尾提到的解决方法 - 我使用了一个常规对话框并在其中放置了一个大的 Iframe。该方法不存在此问题,它看起来与 Iframe 对话框几乎相同。 (考虑到 CKEditor 定制几乎完全缺乏社区支持,我意识到最好只调整 design/concept 来做 CKEditor 更容易完成的事情,而不是让 CKeditor 做你想做的事情) .
我创建了两个 CKEditor 插件。它们每个都使用一个"Iframe Dialog Field",表示启动一个对话框,该对话框的内容是一个网页(您可以将整个对话框想象成一个大的iframe)。
每个插件都可以完美地独立运行。但是,如果我在同一个 CKEditor 应用程序中使用这两个插件,它们最终都会显示相同的页面,而不是两个不同的页面,尽管它们指向两个不同的页面。我看不出为什么会发生这种情况。有谁知道如何防止这种情况?
为确保不会混淆,"IFrame Dialog Field" 是一个对话框,其内容是另一个网页。 文档 - http://ckeditor.com/addon/iframedialog
[ 这与使用 "IFrame dialog" 不同,我认为后者是一个允许用户向页面添加 iframe 的插件。 文档 - IFrame 对话框:http://ckeditor.com/addon/iframe]
在使用方面,当使用 IFrame 对话框字段时,您可以在 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
这似乎是一个不错的解决方法,但它只是一种解决方法,而不是解决方案。我还没有尝试过,并且不知道如果我沿着这条路走下去我会 运行 遇到什么潜在的问题。除非别无选择,否则我宁愿修复现有代码也不愿重写插件。
如有任何帮助,我们将不胜感激。
由于我没有找到任何进一步的信息,也没有在这里收到任何答案,所以我最终采用了问题末尾提到的解决方法 - 我使用了一个常规对话框并在其中放置了一个大的 Iframe。该方法不存在此问题,它看起来与 Iframe 对话框几乎相同。 (考虑到 CKEditor 定制几乎完全缺乏社区支持,我意识到最好只调整 design/concept 来做 CKEditor 更容易完成的事情,而不是让 CKeditor 做你想做的事情) .