首页建站经验 百度编辑器ueditor插入表格没有边框颜色的解决方法

百度编辑器ueditor插入表格没有边框颜色的解决方法

这篇文章主要为大家详细介绍了百度编辑器ueditor插入表格没有边框颜色的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴。前段…

这篇文章主要为大家详细介绍了百度编辑器ueditor插入表格没有边框颜色的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴。

前段时间361源码给大家介绍了《织梦dedecms如何更换百度编辑器ueditor的教程》,不少同学都更换了,而且效果都很不错,细心的朋友发现了一个问题:

1、百度编辑器ueditor插入一个表格后,在编辑过程中有表格,但是保存后,在前台网页中没有边框,也没有颜色。

2、excel中 复制过来的表格会无边框。

发现问题我们就来解决,下面是361源码网在网络上收集和整理的,没有亲测,有兴趣的朋友可以测试看下。

修改办法

打开ueditor.all.js

1、找到下面的代码,修改

utils.each(tables, function (table) {      removeStyleSize(table, true);      domUtils.removeAttributes(table, ['style']); //改这里,原来是 ['style', 'border']      utils.each(domUtils.getElementsByTagName(table, "td"), function (td) {          if (isEmptyBlock(td)) {              domUtils.fillNode(me.document, td);          }          removeStyleSize(td, true);      });  });

这是为了不让UEditor去掉粘贴的表格的边框,也就是table元素的border属性(不是border内联样式)
2、UEditor插入的表格实际是没有边框的,编辑器中看到边框,其实是因为编辑器里面(

td,th{ border:1px solid #DDD; }

但是前台展示是没有这段全局css的,所以导致看不到边框。
我们可以让编辑器中无边框的表格,显示成虚线灰色的边框,这也是其他很多html编辑器的处理方式。找到并修改下面的代码

utils.cssRule('table',              //选中的td上的样式              '.selectTdClass{background-color:#edf5fa !important}' +                  'table.noBorderTable td,table.noBorderTable th,table.noBorderTable caption{border:1px dashed #ddd !important}' +                  //插入的表格的默认样式                  'table{margin-bottom:10px;border-collapse:collapse;display:table;}' +                  'td,th{padding: 5px 10px;border: 1px dashed #DDD;}' + //这里修改 1px solid #DDD 为 1px dashed #DDD                  'caption{border:1px dashed #DDD;border-bottom:0;padding:3px;text-align:center;}' +                  'th{border-top:1px dashed #BBB;background-color:#F7F7F7;}' + //这里修改 1px solid #BBB 为 1px dashed #BBB                  'table tr.firstRow th{border-top-width:2px;}' +                  '.ue-table-interlace-color-single{ background-color: #fcfcfc; } .ue-table-interlace-color-double{ background-color: #f7faff; }' +                  'td p{margin:0;padding:0;}', me.document);

目的是让全局的td/th边框样式显示为灰色虚线
3、最后就是table上右键菜单中有个"表格-设置表格边线可见"的功能。这个功能会让表格显示出实线边框,实际前台展示也是有边框的。现在td是有实线边框的,可是th却还是虚线,所以要改下面的代码,增加一段对th的处理注意:th就是表格标题列/行。可以用右键菜单"表格-插入表格标题列/行"插入th

execCommand: function () {      var table = getTableItemsByRange(this).table;      utils.each(domUtils.getElementsByTagName(table,'td'),function(td){          td.style.borderWidth = '1px';          td.style.borderStyle = 'solid';          td.style.borderColor = 'windowtext';      });      //增加下面一段      utils.each(domUtils.getElementsByTagName(table,'th'),function(th){          th.style.borderWidth = domUtils.getComputedStyle(th, "border-width");          th.style.borderStyle = 'solid';          th.style.borderColor = 'windowtext';      });  }


最后如果你用的是ueditor.all.min.js,需要将改过的代码压缩一份min版本。 

上面是一个童鞋发布到网络上的,有些朋友做了一些改进如下:

方法如下(ueditor.all.js文件):

utils.each(tables, function (table) {      removeStyleSize(table, true);      domUtils.removeAttributes(table, ['style']); //改这里,原来是 ['style', 'border']      utils.each(domUtils.getElementsByTagName(table, "td"), function (td) {          if (isEmptyBlock(td)) {              domUtils.fillNode(me.document, td);          }          removeStyleSize(td, true);      });  });

在上面原同学基础上的改装成如下:

utils.each(tables, function (table) {                                                //粘贴进来的表格table定义属性                        domUtils.setAttributes(table, {                            style:'border-left:1px solid #666; border-top:1px solid #666;',                        });                                                                                            removeStyleSize(table, true);                        //domUtils.removeAttributes(table, ['style', 'border']);                        //domUtils.removeAttributes(table, ['style']);//no remove table Style                        utils.each(domUtils.getElementsByTagName(table, "td"), function (td) {                                                        //粘贴进来的表格td定义属性                            domUtils.setAttributes(td, {                                style:'border-bottom:1px solid #666; border-right:1px solid #666; padding:5px;',                            });                                                                            if (isEmptyBlock(td)) {                                domUtils.fillNode(me.document, td);                            }                            removeStyleSize(td, true);                            //domUtils.removeAttributes(td, ['style'])                        });                    });

实现的效果如下图:

百度编辑器ueditor插入表格没有边框颜色的解决方法

以上就是百度编辑器ueditor插入表格没有边框颜色的解决方法的全部内容,希望对大家的学习和解决疑问有所帮助,也希望大家多多支持错新网。
本文来自网络,不代表1号站长-站长学院|资讯交流平台立场。转载请注明出处: https://www.1cn.cc/jianzhan/jingyan/11663.html
上一篇新手站长搭建网站经常犯的三点错误
下一篇 企业网站标题和关键词描述的写作方法
admin

作者: admin

这里可以再内容模板定义一些文字和说明,也可以调用对应作者的简介!或者做一些网站的描述之类的文字或者HTML!

为您推荐

评论列表()

    联系我们

    联系我们

    0898-88888888

    在线咨询: QQ交谈

    邮箱: email@wangzhan.com

    工作时间:周一至周五,9:00-17:30,节假日休息

    关注微信
    微信扫一扫关注我们

    微信扫一扫关注我们

    关注微博
    返回顶部