我创建了两个CKEditor插件。它们中的每一个都使用“Iframe对话框字段”,这意味着启动了一个对话框,该对话框的内容是一个网页(您可以将整个对话框视为一个大的iframe)。
每个插件都可以完美运行。但是,如果我在同一个CKEditor应用程序中使用这两个插件,它们最终都会显示相同的页面,而不是两个不同的页面,尽管它们指向两个不同的页面。我认为没有理由为什么会发生这种情况。有谁知道如何防止这种情况?
为了确保没有混淆,“IFrame对话框字段”是一个对话框,其内容是另一个网页。 Documenentation - http://ckeditor.com/addon/iframedialog
[这与使用“IFrame对话框”不同,我认为这是一个允许用户向页面添加iframe的插件。 文档 - IFrame对话框:http://ckeditor.com/addon/iframe]
就使用而言,在使用IFrame对话框字段时,您可以在addIframe()命令中指定要加载的页面的URL。以下是使用CKEditor Iframe对话框的示例 https://gist.github.com/garryyao/1170303
回到我的问题 - 如果我只使用我的CKEditor中的一个插件,它可以很好地工作。每个插件都指向不同的URL,并打开该URL作为对话框的内容。但是,如果我在我的CKEditor中使用这两个插件,虽然我看到每个插件都有一个不同的图标,但最终都会启动一个指向同一个URL的对话框。根据我首先推出的那个,这个网址最终都会打开。就好像只允许在CKEditor中使用一个IFrame对话框字段,并且第一个使用的覆盖所有其他字段。
几年前问了同样的问题,CKEditor论坛没有回复。问这个问题的人发布了他的解决方案,或者更确切地说是他的解决方法,即不完全使用IFrame对话框字段,而是使用常规对话框然后在其中放置iframe元素。 http://ckeditor.com/forums/CKEditor-3.x/multiple-iframedialog-plugins-display-same-dialog
这似乎是一个好的解决方法,但它是一种解决方法而不是解决方案。我还没有尝试过,也不知道如果我沿着这条路走下去会遇到什么样的潜在问题。我宁愿修改现有代码而不是重写插件,除非我别无选择。
任何帮助都将不胜感激。
答案 0 :(得分:0)
由于我没有找到任何进一步的信息,或者在这里得到任何答案,我最终采用了我的问题末尾提到的解决方法 - 我使用了常规对话框并在其中放置了一个大的iframe。这种方法不存在这个问题,它看起来与Iframe对话框几乎相同。 (考虑到CKEditor定制几乎完全缺乏社区支持,我已经意识到只需调整你的设计/概念来做更容易用CKEditor完成的事情,而不是让CKeditor做你想做的事情)