JS基础 异常之ueditor复制word文档表格时,格式错乱

本文介绍了解决UEditor在复制Word表格时格式错乱的问题。UEditor会移除宽度单位%,导致格式变化。通过监听内容变更事件,遍历body子节点,将table宽度单位设为%,实现格式还原。

ueditor网址

问题:ueditor的编辑区在复制来自word的表格数据时,会出现格式错乱的问题

原因:
ueidtor在复制来至word的数据时,会对这些数据格式进行过滤。如果复制的数据中存在宽度单位为%的数据,会将%号去掉。
例如width=“200%”,变成200,此时即默认为宽度为200px;

我们在复制Wps表格(部分)时,其table标签及td标签的width单位就是%
而我们只要将最外层的table的width单位变更为%属性即可

解决方法:
利用ue的内容变更事件,将数据中的“%”还原,流程如下:
1.添加ue的内容变更事件
2.捕捉当前editor的body内容(复制数据时,是将数据复制到body内)
3.依次遍历body的子节点(可能复制多个表格),将子节点中时table数据的标签属性设置为%类型

代码如下

    //监听粘贴事件,解决"复制表格自动把标签的width元素的百分比数据变成数值"的bug
    $(function () {
        //获取ue元素
        var ue = UE.getEditor('editor');
        //为ue绑定内容变更事件
        ue.addListener('contentChange', function () {
            //遍历body子节点
            for (var i = 0; i < ue.body.children.length; i++) {
                //获取当前节点的width属性
                var TagValue = ue.body.children[i].getAttribute('width');
                //如果widt
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值