我使用ckeditor的媒体嵌入插件。它工作正常,代码已正确保存在数据库和youtube,soundcloud等中。播放器在页面上显示确定。但是,当用户进入其可以编辑信息的管理部门时,其内部和带有标记的文本不会显示,因此,当用户单击“保存”按钮时,所有先前保存的iframe将被“删除”,其余的iframe将被“删除”的格式化文本将被保存。有什么方法可以在ckeditor中显示iframe代码吗?
最佳答案
我假设您使用的是Advanced Content Filter(ACF)随附的CKEditor4.1.x。最可能的是,您使用不同的编辑器进行前端/后端编辑。
每个插件都使用自己的标记,属性和类规则扩展allowedContent属性。使用这些规则,编辑器会自动剥离不想要的内容,因此,例如,如果前端编辑器因为加载了mediaembed插件而允许<iframe>
,则没有此插件的后端编辑器将从内容中删除您的<iframe>
。
此外,ACF还会观察您的工具栏配置,因此即使您包含插件,但又不想在工具栏中使用该按钮,该按钮提供的任何内容(即<iframe>
)也将在编辑器的输出中被禁止。
您可以轻松地检查您的编辑器是否接受<iframes>
。基本上调用以下命令,然后查看输出:
CKEDITOR.instances.yourInstance.filter.check( 'iframe' );
>>> true // it's allowed
如果是
false
,那么有几种解决您的问题的方法:config.extraAllowedContent
以再次将其恢复。 当第一个solution is straightforward时,第二个可能对您来说很棘手。 mediaembed插件的
allowedContent
规则如下(请参阅plugin's code):allowedContent: 'iframe[*]' // stands for: iframe element with any attribute
如果您将以下内容添加到后端编辑器的配置中,则内容中将包含iframe,而无需加载mediaembed插件:
config.extraAllowedContent = 'iframe[*]'
如果该解决方案对您不起作用,请提供编辑器配置和CKEditor版本,以便人们可以为您提供帮助。
关于iframe - ckeditor不读取媒体嵌入代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16975859/