当前位置: 首页 > news >正文

【亲测有效】百度Ueditor富文本编辑器添加插入视频、视频不显示、和插入视频后二次编辑视频标签不显示,显示成img标签,二次保存视频被替换问题,解决方案

【亲测有效】项目使用百度Ueditor富文本编辑器上传视频相关操作问题
1.百度Ueditor富文本编辑器添加插入视频、视频不显示
2.百度Ueditor富文本编辑器插入视频后二次编辑视频标签不显示,在编辑器内显示成img标签,二次保存视频被替换问题

问题1:添加插入视频、视频不显示。效果图

问题1配图:

解决方案

1.打开ueditor目录下ueditor.all.js文件
2.搜索me.commands["insertvideo"]
3.将17770行代码中的image修改成video
将17770行代码中的image修改成video

修改前代码

 me.commands["insertvideo"] = {
        execCommand: function (cmd, videoObjs, type){
            videoObjs = utils.isArray(videoObjs)?videoObjs:[videoObjs];
            var html = [],id = 'tmpVedio', cl;
            for(var i=0,vi,len = videoObjs.length;i<len;i++){
                vi = videoObjs[i];
                cl = (type == 'upload' ? 'edui-upload-video video-js vjs-default-skin':'edui-faked-video');
                html.push(creatInsertStr( vi.url, vi.width || 420,  vi.height || 280, id + i, null, cl, 'image'));
            }
            me.execCommand("inserthtml",html.join(""),true);
            var rng = this.selection.getRange();
            for(var i= 0,len=videoObjs.length;i<len;i++){
                var img = this.document.getElementById('tmpVedio'+i);
                domUtils.removeAttributes(img,'id');
                rng.selectNode(img).select();
                me.execCommand('imagefloat',videoObjs[i].align)
            }
        },
        queryCommandState : function(){
            var img = me.selection.getRange().getClosedNode(),
                flag = img && (img.className == "edui-faked-video" || img.className.indexOf("edui-upload-video")!=-1);
            return flag ? 1 : 0;
        }
    };

修改后代码

    me.commands["insertvideo"] = {
        execCommand: function (cmd, videoObjs, type){
            videoObjs = utils.isArray(videoObjs)?videoObjs:[videoObjs];
            var html = [],id = 'tmpVedio', cl;
            for(var i=0,vi,len = videoObjs.length;i<len;i++){
                vi = videoObjs[i];
                cl = (type == 'upload' ? 'edui-upload-video video-js vjs-default-skin':'edui-faked-video');
                html.push(creatInsertStr( vi.url, vi.width || 420,  vi.height || 280, id + i, null, cl, 'video'));
            }
            me.execCommand("inserthtml",html.join(""),true);
            var rng = this.selection.getRange();
            for(var i= 0,len=videoObjs.length;i<len;i++){
                var img = this.document.getElementById('tmpVedio'+i);
                domUtils.removeAttributes(img,'id');
                rng.selectNode(img).select();
                me.execCommand('imagefloat',videoObjs[i].align)
            }
        },
        queryCommandState : function(){
            var img = me.selection.getRange().getClosedNode(),
                flag = img && (img.className == "edui-faked-video" || img.className.indexOf("edui-upload-video")!=-1);
            return flag ? 1 : 0;
        }
    };

解决后上传视频在百度Ueditor富文本编辑器内展示效果图

在这里插入图片描述

PS:要是修改后没有效果请清理浏览器缓存

问题2:插入视频后二次编辑视频标签不显示,在编辑器内显示成img标签,二次保存视频被替换问题。效果图

插入视频后二次编辑视频标签不显示,在编辑器内显示成img标签,二次保存视频被替换问题。效果图

解决方案

1.打开ueditor目录下ueditor.all.js文件
2.搜索function switchImgAndVideo(root,img2video){
3.将17684行代码中的image修改成video

将17684行代码中的image修改成video

修改前代码

    function switchImgAndVideo(root,img2video){
        utils.each(root.getNodesByTagName(img2video ? 'img' : 'embed video'),function(node){
            var className = node.getAttr('class');
            if(className && className.indexOf('edui-faked-video') != -1){
                var html = creatInsertStr( img2video ? node.getAttr('_url') : node.getAttr('src'),node.getAttr('width'),node.getAttr('height'),null,node.getStyle('float') || '',className,img2video ? 'embed':'image');
                node.parentNode.replaceChild(UE.uNode.createElement(html),node);
            }
            if(className && className.indexOf('edui-upload-video') != -1){
                var html = creatInsertStr( img2video ? node.getAttr('_url') : node.getAttr('src'),node.getAttr('width'),node.getAttr('height'),null,node.getStyle('float') || '',className,img2video ? 'video':'image');
                node.parentNode.replaceChild(UE.uNode.createElement(html),node);
            }
        })
    }

修改后代码

    function switchImgAndVideo(root,img2video){
        utils.each(root.getNodesByTagName(img2video ? 'img' : 'embed video'),function(node){
            var className = node.getAttr('class');
            if(className && className.indexOf('edui-faked-video') != -1){
                var html = creatInsertStr( img2video ? node.getAttr('_url') : node.getAttr('src'),node.getAttr('width'),node.getAttr('height'),null,node.getStyle('float') || '',className,img2video ? 'embed':'image');
                node.parentNode.replaceChild(UE.uNode.createElement(html),node);
            }
            if(className && className.indexOf('edui-upload-video') != -1){
                var html = creatInsertStr( img2video ? node.getAttr('_url') : node.getAttr('src'),node.getAttr('width'),node.getAttr('height'),null,node.getStyle('float') || '',className,img2video ? 'video':'video');
                node.parentNode.replaceChild(UE.uNode.createElement(html),node);
            }
        })
    }

解决后二次编辑视频标签在百度Ueditor富文本编辑器内展示效果图

在这里插入图片描述

PS:要是修改后没有效果请清理浏览器缓存

本文的重中之重:因为修改的是js文件默认浏览器是有进行缓存的,修改后没有效果请清理浏览器缓存

相关文章:

  • 【C语言】第八期——指针、二维数组与字符串
  • 5 算法1-4 数楼梯
  • springcloud springboot区别
  • pyside6学习专栏(七):自定义QTableWidget的扩展子类QTableWidgetEx
  • docker下安装 es 设置账号密码
  • Android 串口通信
  • 在arm64设备(树莓派4B)上部署Hyperledger Fabric V2.5
  • 详解 为什么 tcp 会出现 粘包 拆包 问题
  • AI知识架构之AI大模型
  • 前端PDF转图片技术调研实战指南:从踩坑到高可用方案的深度解析
  • Qt 中的线程池QRunnable和QThreadPool
  • 【Python爬虫(46)】解锁分布式爬虫:实时数据处理的奥秘
  • 蓝桥杯 Java B 组之背包问题、最长递增子序列(LIS)
  • ROS2 中 TF 变换发布与订阅:实现 base_link 和 test_link 实时可视化显示
  • 认知重构 | 自我分化 | 苏格拉底式提问
  • ubuntu磁盘挂载
  • go语言闭包的立即执行和不立即执行
  • centOS 7.9 安装JDK MYSQL
  • git,bash - 从一个远端git库只下载一个文件的方法
  • echarts找不到了?echarts社区最新地址
  • 怎样做影视网站不侵权/百度智能云建站
  • 哪个网站可以做鸟瞰图/seo上排名
  • 天津武清网站建设/培训课程有哪些
  • 海尔电子商务网站建设预算/加盟教育培训机构
  • 大家做网站都会去哪找素材/广告推广平台赚取佣金
  • asp网站代码/百度关键词怎么优化