ckeditor没有阅读媒体嵌入代码

Mic*_*l S 18 media embed iframe ckeditor

我使用ckeditor的media embed插件.它工作正常,代码正确保存在数据库和youtube,soundcloud等.玩家在页面上显示确定.但是当用户进入他的管理,他可以编辑信息时,内部和标签中的文本没有显示,因此当用户点击保存按钮时,所有先前保存的iframe将被"删除"而只有其他将保存格式化文本.有没有办法在ckeditor中显示iframe代码?

ole*_*leq 41

我假设你使用高级内容过滤器(ACF)附带的CKEditor 4.1.x. 最有可能的是,您使用不同的编辑器进行前端/后端编辑.

每个插件都使用自己的标记,属性和类规则扩展了allowedContent属性.使用这些规则,编辑器会自动删除不需要的内容,因此,例如,如果您的前端编辑器允许,<iframe>因为它已加载了mediaembed插件,那么没有此插件的后端编辑器<iframe>将从内容中删除您的内容.

此外,ACF还会观察您的工具栏配置,因此即使您包含插件但又不想使用工具栏中的按钮,按钮提供的任何内容(即<iframe>)也将在编辑器的输出中被禁止.

您可以轻松检查您的编辑是否接受<iframes>.基本上调用以下内容并查看输出:

CKEDITOR.instances.yourInstance.filter.check( 'iframe' );
>>> true // it's allowed
Run Code Online (Sandbox Code Playgroud)

如果是false,那么有几种解决方案可以解决您的问题:

  1. 在后端编辑器中启用mediaembed插件(使用工具栏中的按钮).
  2. 延伸config.extraAllowedContent再次回来.

虽然第一个解决方案很简单,但第二个解决方案对您来说可能很棘手.allowedContentmediaembed插件的规则如下(参见插件的代码):

allowedContent: 'iframe[*]' // stands for: iframe element with any attribute
Run Code Online (Sandbox Code Playgroud)

如果您将以下内容添加到后端编辑器的配置中,您将在内容中添加iframe而不加载mediaembed插件:

config.extraAllowedContent = 'iframe[*]'
Run Code Online (Sandbox Code Playgroud)

如果此解决方案不适合您,请提供编辑器配置和CKEditor版本,以便人们可以帮助您.

  • @SiddharthChauhan 不,根据[文档](http://docs.ckeditor.com/#!/guide/dev_acf) `(*)` 只允许任何类。`[*]` 用于允许任何属性。 (2认同)

gok*_*han 23

CKEDITOR.config.allowedContent = true;
Run Code Online (Sandbox Code Playgroud)

为我工作.