这段代码不会以源模式保存
<img src="/images/test.jpg" height="300" width="450" style="width: 350px; height: auto;" />
当我将其置于源模式并单击返回到所见即所得模式时,CKEditor会删除高度/宽度属性。 这就是我所看到的
<img src="/images/test.jpg" style="width: 350px; height: auto;" />
但我需要它来保存样式和attrubutes(样式高度/宽度和属性高度/宽度)。
我尝试使用下面的配置,但它不起作用
config.allowedContent = 'img{*}[*](*)'
我也试过
config.allowedContent = true;
它确实有效,但我的config.disallowedContent
不起作用。
我相信编辑器会在HTML代码分区时忽略样式和/或属性(以先到者为准)。
答案 0 :(得分:0)
我终于找到了我的问题的答案。 这是/ckeditor.js中的代码,其中我评论了一行
contentTransformations: [
// ["img{width}: sizeToStyle", "img[width]: sizeToAttribute"],
["img{float}: alignmentToStyle", "img[align]: alignmentToAttribute"]
]
另外在另一个文件中我添加了以下代码:
evt.editor.dataProcessor.htmlFilter.addRules( {
elements: {
$: function( element ) {
if (element.name == 'img') {
if (element.attributes.style) {
var match = /(?:^|\s)width\s*:\s*((\d+)(pt|in|px)|auto|initial|inherit)/i.exec(element.attributes.style),
width = match && (match[2] || match[1]);
if(width && !element.attributes.width) {
element.attributes.width = width;
element.attributes.style = element.attributes.style.replace(/(width\s*:\s*(\d+(pt|in|px)|auto|initial|inherit))/i, "");
}
match = /(?:^|\s)height\s*:\s*((\d+)(pt|in|px)|auto)/i.exec(element.attributes.style);
var height = match && (match[2] || match[1]);
if(height && !element.attributes.height) {
element.attributes.height = height;
element.attributes.style = element.attributes.style.replace(/(height\s*:\s*(\d+(pt|in|px)|auto|initial|inherit))/i, "");
}
}
}
return element;
}
}
});