有没有办法访问 ckeditor 元素的原始属性?

Is there a way to access the original attributes of a ckeditor element?

我正在通过调整现有的 'Image' 插件来为 CKEditor 创建一个插件,使其更适合我们的目的。

它的一个问题是,如果您编辑图像,它往往会弄乱现有属性。例如,在编辑图像后,具有左或右 'align=' 属性的任何内容都会更改为 'float:' 样式,即使您未进行任何更改也是如此。此外,任何设置为 'auto' 的内容也将被删除。

对于正常 html,这不是问题,但我们正在创建响应式电子邮件,需要这些属性才能使它们在 Outlook 中正确显示。

我正在努力让它根据它们的原始值保留某些属性,这些属性运行良好。但是,我 运行 遇到了 'margin' 属性的问题。

我们的一个电子邮件模板中的一张图片的边距:样式属性设置为“0 自动”。 CKEditor 似乎将所有 Html 处理成一个 DOM 结构,并添加了它存储和工作的 ID - 但是当这个值被处理并包含在这个内部 DOM 中时,它是已更改为

margin: "0px"
margin-top: "0px"
margin-bottom: "0px"
margin-left: "0px"
margin-right: "0px"

没有原始 'auto' 值的符号。

有什么方法可以访问元素的原始未DOMed HTML 字符串,以便我可以检索原始样式属性?

我已经在对话框和 CKEDITOR 对象内部进行了探索;我发现 CKEDITOR 对象确实使用未处理的样式属性存储了 'raw' DOM 结构本身,但是由于缺少一些极其复杂的遍历,我找不到引用回此未处理 DOM.

中的元素

找到了!

Dialog 对象包含一个名为 'cleanImageElement' 的对象。这包含不受干扰的样式属性,我可以从中读取我需要的样式标签。