CKEditor 去掉图片自动添加高宽度

时间:2018-09-25 11:06 / 来源:未知 / 作者:酱油 / 点击:

前面有《完美解决FCK编辑器上传图片自动带DIV标签的问题》,这里主要针对CK编辑器上传图片,自动添加长度,高度,因为CSS已经设置了,所以希望不要自动添加长度宽度,少一点冗杂代码。

昨天为一个客户的项目修改后台富编辑器在上传图片后去掉自动添加高宽度的功能。这个客户所用的后台系统是 PHPCMS ,这个系统所使用的富文本编辑器是知名的 CKEditor,这个编辑器在上传图片后会自动添加高宽度的 style 属性。如下:

<img alt="" src="/uploadfile/2017/0608/20170608015605433.jpg" style="width: 580px; height: 295px;" />

那么如何去掉【style=”width: 580px; height: 295px;“】这个属性,于是呼在【度娘】搜索了多次没有找到相关的资料,于是呼就自己动手去找解决方法了,现将这个解决方法记录下来。

PHPCMS 所使用的 CKEditor 的配置文件 config.js 中没有找到有关这项的配置设置的方法说明及参数,这也许和它使用的版本有关,也或者是 PHPCMS 自家将这项的设置给去除,再怎么猜测也没用啊。于是呼想到直接通过修改 plugins 来解决这个问题。

按照这个线索继续查找,找到了处理图片的地方是

你的 PHPCMS 路径\statics\js\ckeditor\plugins\image\dialogs\image.js

这个打开后是压缩版的 JS,可以用格式化 JS 将其中的代码清楚的显示出来后就可以找设置 style 的几个点。一共找到 2 处有关它的设置分别是:

1、设置宽度的地方

if (B == d) {
    if (E) C.setStyle('width', CKEDITOR.tools.cssLength(E));
    else C.removeStyle('width'); ! D && C.removeAttribute('width');
} else if (B == f) {
    var F = E.match(h);
    if (!F) {
        var G = this.getDialog().originalElement;
        if (G.getCustomData('isReady') == 'true') C.setStyle('width', G.$.width + 'px');
    } else C.setStyle('width', CKEDITOR.tools.cssLength(E));
} else if (B == g) {
    C.removeAttribute('width');
    C.removeStyle('width');
}

2、设置高度的地方

if (B == d) {
    if (E) C.setStyle('height', CKEDITOR.tools.cssLength(E));
    else C.removeStyle('height'); ! D && C.removeAttribute('height');
} else if (B == f) {
    var F = E.match(h);
    if (!F) {
        var G = this.getDialog().originalElement;
        if (G.getCustomData('isReady') == 'true') C.setStyle('height', G.$.height + 'px');
    } else C.setStyle('height', CKEDITOR.tools.cssLength(E));
} else if (B == g) {
    C.removeAttribute('height');
    C.removeStyle('height');
}

将以上两个地方的代码注释也好删除也罢都可以,任你选。最后测试图片上传就能发现问题解决了。

猜你喜欢

推荐栏目

DEDECMS
DEDECMS

DEDE使用经验和技巧

WordPress
Wordpress

WP使用经验和技巧

Zblog
Zblog

Zblog使用经验和技巧

CSS
CSS

CSS使用经验和技巧

网络资料
网络资料

转载实用网络资料

按键伤人
按键伤人

转载乱七八糟的网络资源

我是酱油
我是酱油

随笔札记 记录生活点滴

本站推荐

百度站内搜索

专业博客主机