我正在使用Uploadcare上传和存储图像,这是有效的。
但是,CKEditor 4.1.1 似乎对这些图像感到窒息。
通过 CKEditor 添加图像。
图像的初始位置与预期一致。然而,当数据被保存时,CKEditor 在提交数据之前显然做了一些奇怪的事情。
在几个测试中,在 HTML 的格式化和重新排列期间,CKEditor 去除了“样式”图像属性和第一个开头的双引号,我可以在数据库本身的文本数据中看到。
这种行为是完全可重现的。
通过 CKEditor 编辑图像。
最初,图像看起来不错。但是当我查看源代码时,图像的 HTML 被清理为呈现为文本,而不是呈现为图像对象。
禁用第 3 方插件。
如前所述,除了字数和字符数之外,我还在使用 Uploadcare。我禁用了两个插件,但这并没有改变任何东西。
想法。
在保存过程中,我只是通过 CodeIgniter 中的 $this->db->escape() 函数清理数据,无法规避,否则数据不会提交并收到错误消息。
需要明确的是,在测试期间,任何类型的图像对象都会出现错误;可以手动添加,也可以通过 Uploadcare 添加。
在我的视图页面中,我有:
<script type="text/javascript">
CKEDITOR.replace('note', {
allowedContent: true
});
</script>
其中——根据文档——“将禁用过滤器(数据不会被过滤,所有功能都将被激活)。”
但是,它不起作用,并且与以前完全相同;按名称剥离样式属性并将 HTML 转换为它们的常规文本等价物。
如果我选择专门定义一些东西,那么几乎所有东西都会关闭,包括插件,而且——奇怪的是——我写的规则就是:
<script type="text/javascript">
CKEDITOR.replace('note', {
allowedContent: {
'img': {
styles: 'height, width'
}
}
});
</script>
所以我不知道发生了什么。
我还在他们论坛上的一个帖子中尝试了该建议,其中有人遇到与我完全相同的问题,但两种方法都不起作用,这让我相信这是 CKEditor 本身特有的问题,而不是数据处理在其本身。
如果有人对我如何诱使 CKEditor 处理图像有任何建议,我很乐意提供任何建议。